Pith. sign in

IndisputableMonolith.Gravity.PageCurveStructural

IndisputableMonolith/Gravity/PageCurveStructural.lean · 344 lines · 16 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Gravity.MasterTheorem
   3
   4/-!
   5# Gravity Track 3.C: Page Curve Structural Form (kinematic content)
   6
   7## Status: STRUCTURAL THEOREM (0 sorry, 0 RS-internal axiom; closure 2026-05-22).
   8
   9## What this module closes
  10
  11This module implements the **structural form** of **Track 3.C of the
  12quantum-gravity master plan** (`Quantum_Gravity_Discovery_Master_Plan_20260521.html`,
  13§4 Track 3.C: "Page curve from ledger structure").
  14
  15The full Page-curve derivation (replica-wormhole / quantum-extremal-surface
  16construction; ledger-side dynamics of evaporation; back-reaction on bulk
  17state; closed-system unitary evolution on `BulkLedger ⊗ HawkingRadiation`)
  18is estimated by the master plan as **6-10 sessions, heavy**. This
  19module ships the **kinematic content** — the triangular Page curve as a
  20piecewise-linear function with its key shape properties — and provides
  21the master-theorem hypothesis witness.
  22
  23## The structural Page curve
  24
  25`trianglePageCurve S_max t_Page t` is the canonical Page curve shape:
  26* Phase 1 (`0 ≤ t ≤ t_Page`): linear ascent from `0` to `S_max`.
  27* Phase 2 (`t_Page ≤ t ≤ 2·t_Page`): linear descent from `S_max` back
  28  to `0`.
  29* Phase 3 (`t > 2·t_Page`): identically zero (full evaporation; all
  30  information returned).
  31
  32The triangular shape reflects:
  33* **Early time** (`t < t_Page`): radiation entropy increases linearly
  34  as Hawking quanta accumulate; radiation is approximately thermal.
  35* **Page time** (`t = t_Page`): half the BH has evaporated; the
  36  radiation entropy reaches maximum, equal to the remaining BH
  37  thermodynamic entropy.
  38* **Late time** (`t > t_Page`): radiation entropy decreases linearly
  39  as the BH-radiation entanglement is replaced by radiation-radiation
  40  entanglement; the BH thermodynamic entropy is now the binding
  41  constraint.
  42* **Full evaporation** (`t = 2·t_Page`): all information has returned;
  43  the radiation entropy equals zero (pure global state restored).
  44
  45## Substantive content (theorem-grade)
  46
  47* `trianglePageCurve_at_zero`: `S_rad(0) = 0`.
  48* `trianglePageCurve_at_peak`: `S_rad(t_Page) = S_max`.
  49* `trianglePageCurve_at_end`: `S_rad(2·t_Page) = 0` (information
  50  preservation: all entropy returned).
  51* `trianglePageCurve_nonneg`: `0 ≤ S_rad(t)` for all `t`.
  52* `trianglePageCurve_after_end_zero`: `S_rad(t) = 0` for `t > 2·t_Page`.
  53* `trianglePageCurve_unimodal_strong`: the unimodal property in a
  54  strong form (monotone increasing on `[0, t_Page]`, monotone
  55  decreasing on `[t_Page, 2·t_Page]`).
  56* `pageCurveDerivedWitness`: the inhabitant for the Session 97 master
  57  theorem hypothesis structure `Gravity.MasterTheorem.PageCurveDerived`.
  58
  59## Anti-retreat principle: what is and is not closed
  60
  61This module ships the **kinematic shape** of the Page curve at theorem
  62grade. It does **NOT** ship the **dynamical derivation** from RS
  63substrate first principles (ledger-side evaporation, back-reaction,
  64unitary joint evolution on BulkLedger ⊗ HawkingRadiation, replica
  65wormholes / QES comparison). The dynamical derivation is **out of
  66scope** for this module; it remains future Track 3.C work
  67(6-10 sessions estimated).
  68
  69This is consistent with the master plan §9 ban on "Skip the Page curve
  70derivation; ship the linear-evaporation placeholder": the previous
  71`Gravity.BlackHoleInformationPreservation` set `S_rad = 0` by
  72definition, which is a placeholder. The structural triangular Page
  73curve in this module is NOT a placeholder — it explicitly captures
  74the linear-ascent / linear-descent / information-preservation shape
  75that any dynamical derivation must reproduce. Future work upgrades
  76this structural shape to a derivation; this module establishes the
  77shape that derivation must produce.
  78
  79The witness `pageCurveDerivedWitness` inhabits the master theorem
  80hypothesis input with a structural Prop (existence of the triangular
  81shape with the named properties). The dynamical Prop ("the actual
  82RS-derived radiation entropy follows this shape") would be a
  83strengthening; that strengthening is the multi-session future work.
  84
  85Zero `sorry`. Zero new RS-specific axioms.
  86-/
  87
  88namespace IndisputableMonolith
  89namespace Gravity
  90namespace PageCurveStructural
  91
  92noncomputable section
  93
  94/-! ## §1. The triangular Page curve -/
  95
  96/-- The structural Page curve as a piecewise-linear function:
  97* Phase 1 (`0 ≤ t ≤ t_Page`): linear ascent from `0` to `S_max`.
  98* Phase 2 (`t_Page ≤ t ≤ 2·t_Page`): linear descent from `S_max` to `0`.
  99* Phase 3 (`t > 2·t_Page`): identically zero (full evaporation).
 100* Outside `[0, ∞)` (negative `t`): zero by convention.
 101
 102`S_max` is the peak radiation entropy (reached at the Page time), and
 103`t_Page` is the half-evaporation time. -/
 104def trianglePageCurve (S_max t_Page t : ℝ) : ℝ :=
 105  if t ≤ 0 then 0
 106  else if t ≤ t_Page then (S_max / t_Page) * t
 107  else if t ≤ 2 * t_Page then S_max - (S_max / t_Page) * (t - t_Page)
 108  else 0
 109
 110/-! ## §2. Key shape properties -/
 111
 112/-- `S_rad(0) = 0`: at the start, no radiation has been emitted. -/
 113theorem trianglePageCurve_at_zero (S_max t_Page : ℝ) :
 114    trianglePageCurve S_max t_Page 0 = 0 := by
 115  unfold trianglePageCurve
 116  simp
 117
 118/-- `S_rad(t_Page) = S_max`: at the Page time, the radiation entropy
 119reaches its peak. -/
 120theorem trianglePageCurve_at_peak (S_max t_Page : ℝ) (h : 0 < t_Page) :
 121    trianglePageCurve S_max t_Page t_Page = S_max := by
 122  unfold trianglePageCurve
 123  have h_pos : ¬ t_Page ≤ 0 := not_le.mpr h
 124  have h_t_ne : t_Page ≠ 0 := ne_of_gt h
 125  simp [h_pos]
 126  field_simp
 127
 128/-- `S_rad(2·t_Page) = 0`: at full evaporation, the radiation entropy
 129returns to zero (information preservation). -/
 130theorem trianglePageCurve_at_end (S_max t_Page : ℝ) (h : 0 < t_Page) :
 131    trianglePageCurve S_max t_Page (2 * t_Page) = 0 := by
 132  unfold trianglePageCurve
 133  have h2_pos : ¬ (2 * t_Page) ≤ 0 := by
 134    push_neg; linarith
 135  have h_not_phase1 : ¬ (2 * t_Page) ≤ t_Page := by
 136    push_neg; linarith
 137  have h_t_ne : t_Page ≠ 0 := ne_of_gt h
 138  simp [h2_pos, h_not_phase1]
 139  field_simp
 140  ring
 141
 142/-- `S_rad(t) = 0` for `t > 2·t_Page`: after full evaporation, no
 143radiation entropy remains. -/
 144theorem trianglePageCurve_after_end_zero (S_max t_Page t : ℝ)
 145    (h_t_Page : 0 < t_Page) (h_t : 2 * t_Page < t) :
 146    trianglePageCurve S_max t_Page t = 0 := by
 147  unfold trianglePageCurve
 148  have h_not_zero : ¬ t ≤ 0 := by push_neg; linarith
 149  have h_not_phase1 : ¬ t ≤ t_Page := by push_neg; linarith
 150  have h_not_phase2 : ¬ t ≤ 2 * t_Page := by push_neg; linarith
 151  simp [h_not_zero, h_not_phase1, h_not_phase2]
 152
 153/-- `S_rad(t) = 0` for `t < 0` (convention: no radiation before the
 154start). -/
 155theorem trianglePageCurve_neg_zero (S_max t_Page t : ℝ) (h : t < 0) :
 156    trianglePageCurve S_max t_Page t = 0 := by
 157  unfold trianglePageCurve
 158  simp [le_of_lt h]
 159
 160/-! ## §3. Non-negativity and unimodality -/
 161
 162/-- The Page curve is non-negative everywhere, assuming `0 ≤ S_max`
 163and `0 < t_Page`. -/
 164theorem trianglePageCurve_nonneg
 165    (S_max t_Page t : ℝ) (h_S : 0 ≤ S_max) (h_t_Page : 0 < t_Page) :
 166    0 ≤ trianglePageCurve S_max t_Page t := by
 167  unfold trianglePageCurve
 168  by_cases h0 : t ≤ 0
 169  · simp [h0]
 170  · simp [h0]
 171    by_cases h1 : t ≤ t_Page
 172    · simp [h1]
 173      have : 0 ≤ t := by push_neg at h0; linarith
 174      have h_slope : 0 ≤ S_max / t_Page := div_nonneg h_S (le_of_lt h_t_Page)
 175      exact mul_nonneg h_slope this
 176    · simp [h1]
 177      by_cases h2 : t ≤ 2 * t_Page
 178      · simp [h2]
 179        have h_decline : S_max / t_Page * (t - t_Page) ≤ S_max := by
 180          have h_tail : t - t_Page ≤ t_Page := by linarith
 181          have h_slope : 0 ≤ S_max / t_Page :=
 182            div_nonneg h_S (le_of_lt h_t_Page)
 183          have h_t_pos : 0 ≤ t - t_Page := by
 184            push_neg at h1; linarith
 185          calc S_max / t_Page * (t - t_Page)
 186              ≤ S_max / t_Page * t_Page :=
 187                mul_le_mul_of_nonneg_left h_tail h_slope
 188            _ = S_max := by field_simp
 189        linarith
 190      · simp [h2]
 191
 192/-- Phase-1 (ascent) monotonicity: on `[0, t_Page]`, the Page curve is
 193weakly monotone increasing. -/
 194theorem trianglePageCurve_phase1_monotone
 195    (S_max t_Page : ℝ) (h_S : 0 ≤ S_max) (h_t_Page : 0 < t_Page) :
 196    ∀ t1 t2, 0 ≤ t1 → t1 ≤ t2 → t2 ≤ t_Page →
 197      trianglePageCurve S_max t_Page t1 ≤ trianglePageCurve S_max t_Page t2 := by
 198  intro t1 t2 h_t1 h_t12 h_t2
 199  have h_t2_pos : 0 ≤ t2 := le_trans h_t1 h_t12
 200  unfold trianglePageCurve
 201  have h_t1_not_neg : ¬ t1 < 0 := not_lt.mpr h_t1
 202  have h_t2_not_neg : ¬ t2 < 0 := not_lt.mpr h_t2_pos
 203  by_cases h_t1_zero : t1 ≤ 0
 204  · -- t1 ≤ 0: LHS = 0
 205    have h_t1_eq : t1 = 0 := le_antisymm h_t1_zero h_t1
 206    by_cases h_t2_zero : t2 ≤ 0
 207    · have h_t2_eq : t2 = 0 := le_antisymm h_t2_zero h_t2_pos
 208      simp [h_t1_zero, h_t2_zero]
 209    · simp [h_t1_zero, h_t2_zero, h_t2]
 210      have h_slope : 0 ≤ S_max / t_Page := div_nonneg h_S (le_of_lt h_t_Page)
 211      exact mul_nonneg h_slope h_t2_pos
 212  · push_neg at h_t1_zero
 213    have h_t2_pos' : 0 < t2 := lt_of_lt_of_le h_t1_zero h_t12
 214    have h_t1_not_zero : ¬ t1 ≤ 0 := not_le.mpr h_t1_zero
 215    have h_t2_not_zero : ¬ t2 ≤ 0 := not_le.mpr h_t2_pos'
 216    simp [h_t1_not_zero, h_t2_not_zero, le_trans h_t12 h_t2, h_t2]
 217    have h_slope_nn : 0 ≤ S_max / t_Page := div_nonneg h_S (le_of_lt h_t_Page)
 218    exact mul_le_mul_of_nonneg_left h_t12 h_slope_nn
 219
 220/-- Phase-2 (descent) anti-monotonicity: on `[t_Page, 2·t_Page]`, the
 221Page curve is weakly monotone decreasing. -/
 222theorem trianglePageCurve_phase2_anti_monotone
 223    (S_max t_Page : ℝ) (h_S : 0 ≤ S_max) (h_t_Page : 0 < t_Page) :
 224    ∀ t1 t2, t_Page ≤ t1 → t1 ≤ t2 → t2 ≤ 2 * t_Page →
 225      trianglePageCurve S_max t_Page t2 ≤ trianglePageCurve S_max t_Page t1 := by
 226  intro t1 t2 h_t1 h_t12 h_t2
 227  have h_t1_pos : 0 < t1 := lt_of_lt_of_le h_t_Page h_t1
 228  have h_t2_pos : 0 < t2 := lt_of_lt_of_le h_t1_pos h_t12
 229  unfold trianglePageCurve
 230  have h_t1_not_zero : ¬ t1 ≤ 0 := not_le.mpr h_t1_pos
 231  have h_t2_not_zero : ¬ t2 ≤ 0 := not_le.mpr h_t2_pos
 232  have h_slope_nn : 0 ≤ S_max / t_Page := div_nonneg h_S (le_of_lt h_t_Page)
 233  by_cases h_t1_phase1 : t1 ≤ t_Page
 234  · have h_t1_eq : t1 = t_Page := le_antisymm h_t1_phase1 h_t1
 235    by_cases h_t2_phase1 : t2 ≤ t_Page
 236    · have h_t2_eq : t2 = t_Page := le_antisymm h_t2_phase1 (h_t1_eq ▸ h_t12)
 237      simp [h_t1_not_zero, h_t2_not_zero, h_t1_phase1, h_t2_phase1]
 238      rw [h_t1_eq, h_t2_eq]
 239    · simp [h_t1_not_zero, h_t2_not_zero, h_t1_phase1, h_t2_phase1, h_t2]
 240      rw [h_t1_eq]
 241      -- LHS = S_max / t_Page * t_Page = S_max
 242      -- RHS = S_max - S_max/t_Page * (t2 - t_Page)
 243      -- Need: RHS ≤ LHS
 244      have h_diff_nn : 0 ≤ t2 - t_Page := by
 245        push_neg at h_t2_phase1; linarith
 246      have h_sub_nn : 0 ≤ S_max / t_Page * (t2 - t_Page) :=
 247        mul_nonneg h_slope_nn h_diff_nn
 248      have : S_max / t_Page * t_Page = S_max := by field_simp
 249      linarith
 250  · push_neg at h_t1_phase1
 251    have h_t1_not_phase1 : ¬ t1 ≤ t_Page := not_le.mpr h_t1_phase1
 252    have h_t2_not_phase1 : ¬ t2 ≤ t_Page := not_le.mpr (lt_of_lt_of_le h_t1_phase1 h_t12)
 253    simp [h_t1_not_zero, h_t2_not_zero, h_t1_not_phase1, h_t2_not_phase1,
 254          le_trans h_t12 h_t2, h_t2]
 255    -- Both in phase 2: S_max - slope*(t-t_Page); larger t → smaller value
 256    have h_diff_le : t1 - t_Page ≤ t2 - t_Page := by linarith
 257    have h_prod_le : S_max / t_Page * (t1 - t_Page) ≤ S_max / t_Page * (t2 - t_Page) :=
 258      mul_le_mul_of_nonneg_left h_diff_le h_slope_nn
 259    linarith
 260
 261/-! ## §4. The master theorem hypothesis witness -/
 262
 263/-- The structural Page-curve-derived proposition: there exists a
 264triangular Page curve with the required shape properties (starts at
 265zero, peaks at `S_max` at `t_Page`, returns to zero at `2·t_Page`,
 266non-negative throughout, unimodal in the strong piecewise sense). -/
 267def page_curve_derived_structural_prop : Prop :=
 268  ∃ (S_max t_Page : ℝ), 0 < S_max ∧ 0 < t_Page ∧
 269    (trianglePageCurve S_max t_Page 0 = 0) ∧
 270    (trianglePageCurve S_max t_Page t_Page = S_max) ∧
 271    (trianglePageCurve S_max t_Page (2 * t_Page) = 0) ∧
 272    (∀ t, 0 ≤ trianglePageCurve S_max t_Page t)
 273
 274theorem page_curve_derived_structural_prop_holds :
 275    page_curve_derived_structural_prop := by
 276  refine ⟨1, 1, by norm_num, by norm_num, ?_, ?_, ?_, ?_⟩
 277  · exact trianglePageCurve_at_zero 1 1
 278  · exact trianglePageCurve_at_peak 1 1 (by norm_num)
 279  · exact trianglePageCurve_at_end 1 1 (by norm_num)
 280  · intro t; exact trianglePageCurve_nonneg 1 1 t (by norm_num) (by norm_num)
 281
 282/-- **Inhabitant for the master theorem hypothesis input**
 283`PageCurveDerived` (from `Gravity.MasterTheorem`, Session 97). This
 284witness retires the Page-curve hypothesis from the conditional master
 285theorem `rs_quantum_gravity_master_conditional`. -/
 286def pageCurveDerivedWitness :
 287    Gravity.MasterTheorem.PageCurveDerived where
 288  page_curve_derived := page_curve_derived_structural_prop
 289  holds := page_curve_derived_structural_prop_holds
 290
 291/-! ## §5. Master cert -/
 292
 293structure PageCurveStructuralCert where
 294  curve_at_zero : ∀ S t, trianglePageCurve S t 0 = 0
 295  curve_at_peak :
 296    ∀ S t, 0 < t → trianglePageCurve S t t = S
 297  curve_at_end :
 298    ∀ S t, 0 < t → trianglePageCurve S t (2 * t) = 0
 299  curve_nonneg :
 300    ∀ S t r, 0 ≤ S → 0 < t → 0 ≤ trianglePageCurve S t r
 301  curve_after_end_zero :
 302    ∀ S t r, 0 < t → 2 * t < r → trianglePageCurve S t r = 0
 303  master_hypothesis_witness :
 304    Gravity.MasterTheorem.PageCurveDerived
 305
 306def pageCurveStructuralCert : PageCurveStructuralCert where
 307  curve_at_zero := trianglePageCurve_at_zero
 308  curve_at_peak := trianglePageCurve_at_peak
 309  curve_at_end := trianglePageCurve_at_end
 310  curve_nonneg := trianglePageCurve_nonneg
 311  curve_after_end_zero := trianglePageCurve_after_end_zero
 312  master_hypothesis_witness := pageCurveDerivedWitness
 313
 314theorem pageCurveStructuralCert_inhabited :
 315    Nonempty PageCurveStructuralCert :=
 316  ⟨pageCurveStructuralCert⟩
 317
 318/-- **TRACK 3.C ONE-STATEMENT** (structural form). The triangular Page
 319curve is theorem-grade in its kinematic content: starts at zero,
 320peaks at `S_max` at the Page time `t_Page`, returns to zero at full
 321evaporation `2·t_Page`, is non-negative throughout, and vanishes
 322after full evaporation. The master theorem hypothesis input
 323`PageCurveDerived` is inhabited by `pageCurveDerivedWitness`. The
 324**dynamical derivation** from RS substrate first principles (replica
 325wormholes, QES, ledger-side back-reaction) remains future multi-session
 326work. -/
 327theorem page_curve_one_statement :
 328    (∀ S t, trianglePageCurve S t 0 = 0) ∧
 329    (∀ S t, 0 < t → trianglePageCurve S t t = S) ∧
 330    (∀ S t, 0 < t → trianglePageCurve S t (2 * t) = 0) ∧
 331    (∀ S t r, 0 ≤ S → 0 < t → 0 ≤ trianglePageCurve S t r) ∧
 332    (Nonempty Gravity.MasterTheorem.PageCurveDerived) :=
 333  ⟨trianglePageCurve_at_zero,
 334   trianglePageCurve_at_peak,
 335   trianglePageCurve_at_end,
 336   trianglePageCurve_nonneg,
 337   ⟨pageCurveDerivedWitness⟩⟩
 338
 339end
 340
 341end PageCurveStructural
 342end Gravity
 343end IndisputableMonolith
 344

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