Pith. sign in

IndisputableMonolith.Cosmology.RecognitionEventHorizon

IndisputableMonolith/Cosmology/RecognitionEventHorizon.lean · 249 lines · 25 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Cosmology: the recognition event horizon `8 φ²` (Phase 9 freeze-out)
   6
   7## Status: THEOREM (0 sorry, 0 RS-internal axiom).
   8
   9This module formalizes the finite recognition horizon that drives the Phase-9
  10accelerated-expansion freeze-out in
  11`scripts/cosmogenesis/freeze_out_dynamics.py`.
  12
  13## The forced setup (no tuned Hubble rate, no coupling)
  14
  15A recognition signal travels one comoving cell per tick at unit scale. The
  16cadence is eight ticks per recognition epoch (T-7), so a signal covers eight
  17comoving cells per epoch at unit scale. The forced self-similar dilation
  18expands the comoving scale by `φ` per epoch (T-6), so the comoving distance a
  19signal covers in epoch `m` is divided by `φ^m`:
  20
  21  `perEpochReach m = 8 / φ^m = 8 (1/φ)^m`.
  22
  23The cumulative comoving reach after infinitely many epochs is the geometric
  24series `∑ 8 (1/φ)^m`. Because the dilation ratio `1/φ` is strictly below one,
  25this series converges to a finite limit, the de Sitter recognition event
  26horizon:
  27
  28  `∑_{m ≥ 0} 8 (1/φ)^m = 8 φ² = 8 (φ + 1) ≈ 20.944` comoving cells.
  29
  30The two ingredients are the cadence `8` (T-7) and the dilation sum `φ²`
  31(T-6, via `φ² = φ + 1`). There is no fitted constant.
  32
  33## What this forces physically
  34
  35The partial reach after any finite number of epochs is strictly below `8 φ²`
  36and increases monotonically toward it. So a comoving separation at or beyond
  37`8 φ²` is never crossed by a recognition signal. Structure on those scales can
  38never be brought into causal contact, so it can never be homogenized: it
  39freezes at its primordial amplitude. Structure below the horizon is eventually
  40crossed and homogenizes. That is the RS `Ω_Λ` freeze-out.
  41
  42## Relation to `VacuumHorizonForcing`
  43
  44`VacuumHorizonForcing` selects the *past-directed particle horizon* for the
  45*vacuum-energy ledger cost*, and there the de Sitter event horizon is excluded
  46because that calculation must not depend on future expansion. This module is a
  47different object: the *future-directed* reach of a signal launched now, which
  48is exactly a de Sitter event horizon. The two are consistent, not in tension:
  49the ledger ground-state cost uses the past cone, the forward freeze-out of
  50structure uses the future cone.
  51-/
  52
  53namespace IndisputableMonolith
  54namespace Cosmology
  55namespace RecognitionEventHorizon
  56
  57open scoped BigOperators
  58
  59/-- Local alias for the golden ratio, following the per-module convention. -/
  60noncomputable abbrev φ : ℝ := Constants.phi
  61
  62lemma phi_pos : 0 < φ := Constants.phi_pos
  63lemma one_lt_phi : 1 < φ := Constants.one_lt_phi
  64lemma phi_sq_eq : φ ^ 2 = φ + 1 := Constants.phi_sq_eq
  65
  66/-! ## §1. The dilation ratio `1/φ` -/
  67
  68lemma phi_inv_pos : 0 < 1 / φ := one_div_pos.mpr phi_pos
  69
  70lemma phi_inv_nonneg : (0 : ℝ) ≤ 1 / φ := le_of_lt phi_inv_pos
  71
  72lemma phi_inv_lt_one : 1 / φ < 1 := by
  73  rw [div_lt_one phi_pos]; exact one_lt_phi
  74
  75/-! ## §2. Per-epoch reach, cumulative reach, the horizon -/
  76
  77/-- The comoving distance a recognition signal covers in epoch `m`: the cadence
  78`8` (T-7) divided by the forced dilation `φ^m` (T-6). -/
  79noncomputable def perEpochReach (m : ℕ) : ℝ := 8 * (1 / φ) ^ m
  80
  81/-- The de Sitter recognition event horizon forced by φ-dilation: `8 φ²`. -/
  82noncomputable def recognitionEventHorizon : ℝ := 8 * φ ^ 2
  83
  84/-- The cumulative comoving reach after `n` epochs: the partial sum of
  85per-epoch reaches. -/
  86noncomputable def cumulativeReach (n : ℕ) : ℝ :=
  87  ∑ m ∈ Finset.range n, perEpochReach m
  88
  89lemma perEpochReach_pos (k : ℕ) : 0 < perEpochReach k := by
  90  unfold perEpochReach
  91  exact mul_pos (by norm_num) (pow_pos phi_inv_pos k)
  92
  93lemma perEpochReach_summable : Summable perEpochReach :=
  94  (summable_geometric_of_lt_one phi_inv_nonneg phi_inv_lt_one).mul_left 8
  95
  96/-! ## §3. The geometric sum: `∑ (1/φ)^m = φ²` -/
  97
  98/-- The closed-form geometric sum of the dilation ratio. With ratio `1/φ < 1`,
  99`∑_{m ≥ 0} (1/φ)^m = (1 - 1/φ)⁻¹`, and `(1 - 1/φ)⁻¹ = φ²` follows from the
 100self-similar identity `φ² = φ + 1`. -/
 101theorem tsum_phi_inv_pow : ∑' m : ℕ, (1 / φ) ^ m = φ ^ 2 := by
 102  rw [tsum_geometric_of_lt_one phi_inv_nonneg phi_inv_lt_one]
 103  -- Goal: (1 - 1/φ)⁻¹ = φ ^ 2
 104  have hφ : φ ≠ 0 := ne_of_gt phi_pos
 105  have hkey : (1 - 1 / φ) * φ ^ 2 = 1 := by
 106    have e1 : (1 - 1 / φ) * φ ^ 2 = φ ^ 2 - φ := by
 107      field_simp
 108    rw [e1, phi_sq_eq]; ring
 109  exact inv_eq_of_mul_eq_one_right hkey
 110
 111/-! ## §4. The total reach equals the horizon -/
 112
 113/-- **THEOREM.** The total cumulative reach over all epochs equals the forced
 114event horizon `8 φ²`. A recognition signal can only ever traverse a finite
 115comoving distance, even given infinitely many epochs. -/
 116theorem tsum_perEpochReach :
 117    ∑' m : ℕ, perEpochReach m = recognitionEventHorizon := by
 118  unfold perEpochReach recognitionEventHorizon
 119  rw [tsum_mul_left, tsum_phi_inv_pow]
 120
 121/-- The horizon in closed form, purely from `φ² = φ + 1`. Numerically
 122`8 (φ + 1) ≈ 20.944` comoving cells, matching the numeric simulation. -/
 123theorem recognitionEventHorizon_eq : recognitionEventHorizon = 8 * (φ + 1) := by
 124  unfold recognitionEventHorizon; rw [phi_sq_eq]
 125
 126/-! ## §5. The partial reach never reaches the horizon -/
 127
 128/-- **THEOREM.** After any finite number of epochs the cumulative reach is
 129strictly below the horizon. A comoving separation at or beyond `8 φ²` is
 130therefore never crossed by a recognition signal, so super-horizon structure can
 131never be homogenized: it freezes at its primordial amplitude. -/
 132theorem cumulativeReach_lt_horizon (n : ℕ) :
 133    cumulativeReach n < recognitionEventHorizon := by
 134  have hsum := perEpochReach_summable
 135  have hsplit := Summable.sum_add_tsum_nat_add n hsum
 136  have htail_summable : Summable (fun i => perEpochReach (i + n)) :=
 137    (summable_nat_add_iff n).2 hsum
 138  have htail_pos : 0 < ∑' i, perEpochReach (i + n) :=
 139    htail_summable.tsum_pos (fun i => le_of_lt (perEpochReach_pos _)) 0
 140      (perEpochReach_pos _)
 141  have key :
 142      cumulativeReach n + ∑' i, perEpochReach (i + n) = recognitionEventHorizon := by
 143    have h := hsplit
 144    rw [tsum_perEpochReach] at h
 145    simpa [cumulativeReach] using h
 146  linarith [htail_pos, key]
 147
 148/-- **THEOREM.** The cumulative reach increases strictly with each epoch:
 149each epoch adds a strictly positive per-epoch reach, so the reach climbs
 150monotonically toward (but never attains) the horizon. -/
 151theorem cumulativeReach_strictMono : StrictMono cumulativeReach := by
 152  apply strictMono_nat_of_lt_succ
 153  intro n
 154  have hstep : cumulativeReach (n + 1) = cumulativeReach n + perEpochReach n := by
 155    simp [cumulativeReach, Finset.sum_range_succ]
 156  rw [hstep]; linarith [perEpochReach_pos n]
 157
 158/-! ## §6. The dyadic freeze rung: the horizon sits between `2^4` and `2^5` -/
 159
 160/-- The horizon strictly exceeds the dyadic rung `2^4 = 16`: `16 < 8 φ²`, equivalently
 161`2 < φ²`, equivalently `1 < φ`. So a self-similar (dyadic) structure at scale `2^4 = 16` is
 162sub-horizon and is homogenized. -/
 163theorem two_pow_four_lt_horizon : (2 : ℝ) ^ 4 < recognitionEventHorizon := by
 164  have h16 : (2 : ℝ) ^ 4 = 16 := by norm_num
 165  rw [recognitionEventHorizon_eq, h16]
 166  linarith [one_lt_phi]
 167
 168/-- The horizon is strictly below the dyadic rung `2^5 = 32`: `8 φ² < 32`, equivalently
 169`φ² < 4`, equivalently `φ < 3` (in fact `φ ≤ 5/3`). So a self-similar (dyadic) structure at
 170scale `2^5 = 32` is super-horizon and freezes at its primordial amplitude. -/
 171theorem horizon_lt_two_pow_five : recognitionEventHorizon < (2 : ℝ) ^ 5 := by
 172  have h32 : (2 : ℝ) ^ 5 = 32 := by norm_num
 173  rw [recognitionEventHorizon_eq, h32]
 174  nlinarith [phi_sq_eq, sq_nonneg (φ - 2)]
 175
 176/-- **THEOREM.** The recognition event horizon `8 φ²` sits strictly between the dyadic rungs
 177`2^4 = 16` and `2^5 = 32`. So a self-similar (dyadic) structure freezes exactly at and above
 178the scale `2^5 = 32` and homogenizes at and below `2^4 = 16`: the freeze break is forced to
 179the fifth dyadic rung, with no fitted scale. This is the arithmetic anchor of the Phase-16
 180freeze-out scale selection (`scripts/cosmogenesis/foam_freeze_out.py`). -/
 181theorem recognitionEventHorizon_between_dyadic_rungs :
 182    (2 : ℝ) ^ 4 < recognitionEventHorizon ∧ recognitionEventHorizon < (2 : ℝ) ^ 5 :=
 183  ⟨two_pow_four_lt_horizon, horizon_lt_two_pow_five⟩
 184
 185/-- The forced dyadic freeze rung: the least exponent `k` with `2^k` above the horizon. -/
 186def dyadicFreezeRung : ℕ := 5
 187
 188/-- **THEOREM.** `dyadicFreezeRung = 5` is the least power-of-two rung strictly above the
 189recognition horizon: `2^5 > 8 φ²`, while every smaller rung `2^k` (`k < 5`) is strictly below
 190it. So the freeze-out selects exactly the dyadic scales at or above `2^5 = 32`. -/
 191theorem dyadicFreezeRung_is_least :
 192    recognitionEventHorizon < (2 : ℝ) ^ dyadicFreezeRung ∧
 193    ∀ k : ℕ, k < dyadicFreezeRung → (2 : ℝ) ^ k < recognitionEventHorizon := by
 194  refine ⟨horizon_lt_two_pow_five, ?_⟩
 195  intro k hk
 196  simp only [dyadicFreezeRung] at hk
 197  have hk4 : k ≤ 4 := by omega
 198  have hnat : (2 : ℕ) ^ k ≤ 2 ^ 4 := Nat.pow_le_pow_right (by norm_num) hk4
 199  have hmono : (2 : ℝ) ^ k ≤ (2 : ℝ) ^ 4 := by exact_mod_cast hnat
 200  exact lt_of_le_of_lt hmono two_pow_four_lt_horizon
 201
 202/-! ## §7. One-statement master theorem -/
 203
 204/-- **RECOGNITION EVENT HORIZON, ONE STATEMENT.** The forced φ-dilation (one
 205φ-rung per eight-tick epoch, T-6 and T-7) gives a finite de Sitter recognition
 206horizon equal to `8 φ² = 8 (φ + 1)`; the cumulative reach converges to it from
 207strictly below and increases monotonically, so any comoving separation at or
 208beyond `8 φ²` is never crossed. This is the law-derived freeze-out mechanism:
 209no tuned Hubble rate and no fitted coupling enter. -/
 210theorem recognition_event_horizon_one_statement :
 211    (∑' m : ℕ, perEpochReach m = recognitionEventHorizon) ∧
 212    recognitionEventHorizon = 8 * (φ + 1) ∧
 213    (∀ n : ℕ, cumulativeReach n < recognitionEventHorizon) ∧
 214    StrictMono cumulativeReach :=
 215  ⟨tsum_perEpochReach, recognitionEventHorizon_eq, cumulativeReach_lt_horizon,
 216    cumulativeReach_strictMono⟩
 217
 218/-! ## §8. Real-space reachability dichotomy (Phase 17) -/
 219
 220/-- **THEOREM.** The real-space freeze-out dichotomy. A comoving separation `r` is eventually
 221crossed by a recognition signal launched at the σ = 0 seed iff it lies strictly below the
 222horizon: for every `r < 8 φ²` there is a finite epoch whose cumulative reach exceeds `r` (so
 223structure at radius `r` is eventually homogenized), while for every `r ≥ 8 φ²` no finite epoch
 224ever reaches `r` (so structure at radius `r` freezes at its primordial amplitude). This is the
 225real-space form of the Phase-9 horizon and the law-derived statement behind the inner
 226homogenized ball / outer frozen foam split in
 227`scripts/cosmogenesis/foam_real_space_freeze_out.py`: the freeze surface is the comoving sphere
 228of radius `8 φ²`, which by §6 sits strictly between the dyadic shells `2^4 = 16` and
 229`2^5 = 32`. -/
 230theorem reach_dichotomy :
 231    (∀ r : ℝ, r < recognitionEventHorizon → ∃ n : ℕ, r < cumulativeReach n) ∧
 232    (∀ r : ℝ, recognitionEventHorizon ≤ r → ∀ n : ℕ, cumulativeReach n < r) := by
 233  refine ⟨?_, ?_⟩
 234  · intro r hr
 235    have hsum : HasSum perEpochReach recognitionEventHorizon := by
 236      have h := perEpochReach_summable.hasSum
 237      rwa [tsum_perEpochReach] at h
 238    have hT : Filter.Tendsto cumulativeReach Filter.atTop (nhds recognitionEventHorizon) := by
 239      simpa [cumulativeReach] using hsum.tendsto_sum_nat
 240    have hev : ∀ᶠ n in Filter.atTop, r < cumulativeReach n :=
 241      hT.eventually (eventually_gt_nhds hr)
 242    exact hev.exists
 243  · intro r hr n
 244    exact lt_of_lt_of_le (cumulativeReach_lt_horizon n) hr
 245
 246end RecognitionEventHorizon
 247end Cosmology
 248end IndisputableMonolith
 249

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