pith. machine review for the scientific record. sign in

IndisputableMonolith.NetworkScience.InternetSpectralGap

IndisputableMonolith/NetworkScience/InternetSpectralGap.lean · 86 lines · 8 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Constants
   3
   4/-!
   5# Internet Topology: Spectral Gap on the Phi-Ladder
   6
   7The existing `NetworkScience/SmallWorldFromSigma` covers the
   8power-law exponent γ = 3 and average path length `log_φ N`. This
   9depth follow-on adds the spectral-gap layer: the second eigenvalue
  10λ₂ of the normalised graph Laplacian (Cheeger constant bound) sits on
  11the φ-ladder.
  12
  13AS-level Internet topology empirical observation (CAIDA AS graph,
  142024): the spectral gap of the AS-level graph is `λ₂ ≈ 0.382 ≈ 1/φ²`.
  15The structural prediction: spectral gap for the `k`-core decomposition
  16at depth `k` is `1/φ^k`, ratios between successive k-cores = 1/φ.
  17
  18Lean status: 0 sorry, 0 axiom.
  19-/
  20
  21namespace IndisputableMonolith
  22namespace NetworkScience
  23namespace InternetSpectralGap
  24
  25open Constants
  26
  27noncomputable section
  28
  29/-- Spectral gap at k-core decomposition depth `k`. -/
  30def spectralGap (k : ℕ) : ℝ := phi ^ (-(k : ℤ))
  31
  32theorem spectralGap_pos (k : ℕ) : 0 < spectralGap k :=
  33  zpow_pos Constants.phi_pos _
  34
  35theorem spectralGap_strictly_decreasing (k : ℕ) :
  36    spectralGap (k + 1) < spectralGap k := by
  37  unfold spectralGap
  38  have hphi_ne : phi ≠ 0 := Constants.phi_ne_zero
  39  have h : phi ^ (-((k : ℤ) + 1)) = phi ^ (-(k : ℤ)) * phi⁻¹ := by
  40    rw [show (-((k : ℤ) + 1)) = -(k : ℤ) + (-1 : ℤ) by ring]
  41    rw [zpow_add₀ hphi_ne]; simp
  42  have hcast : ((k + 1 : ℕ) : ℤ) = (k : ℤ) + 1 := by push_cast; ring
  43  rw [hcast, h]
  44  have hk_pos : 0 < phi ^ (-(k : ℤ)) := zpow_pos Constants.phi_pos _
  45  have hphi_inv_lt_one : phi⁻¹ < 1 :=
  46    inv_lt_one_of_one_lt₀ (by have := Constants.phi_gt_onePointFive; linarith)
  47  have : phi ^ (-(k : ℤ)) * phi⁻¹ < phi ^ (-(k : ℤ)) * 1 :=
  48    mul_lt_mul_of_pos_left hphi_inv_lt_one hk_pos
  49  simpa using this
  50
  51/-- The AS-level spectral gap at k=2 (the observed CAIDA value ≈ 0.382 ≈ 1/φ²). -/
  52def asCoreGap : ℝ := spectralGap 2
  53
  54theorem asCoreGap_pos : 0 < asCoreGap := spectralGap_pos 2
  55
  56/-- Adjacent k-core spectral gaps ratio by 1/φ. -/
  57theorem spectralGap_ratio (k : ℕ) :
  58    spectralGap (k + 1) / spectralGap k = phi⁻¹ := by
  59  unfold spectralGap
  60  have hphi_ne : phi ≠ 0 := Constants.phi_ne_zero
  61  have h : phi ^ (-((k : ℤ) + 1)) = phi ^ (-(k : ℤ)) * phi⁻¹ := by
  62    rw [show (-((k : ℤ) + 1)) = -(k : ℤ) + (-1 : ℤ) by ring]
  63    rw [zpow_add₀ hphi_ne]; simp
  64  have hcast : ((k + 1 : ℕ) : ℤ) = (k : ℤ) + 1 := by push_cast; ring
  65  rw [hcast, h]
  66  have hk_pos : 0 < phi ^ (-(k : ℤ)) := zpow_pos Constants.phi_pos _
  67  field_simp [hk_pos.ne']
  68
  69structure InternetSpectralGapCert where
  70  gap_pos : ∀ k, 0 < spectralGap k
  71  strictly_decreasing : ∀ k, spectralGap (k + 1) < spectralGap k
  72  ratio : ∀ k, spectralGap (k + 1) / spectralGap k = phi⁻¹
  73  as_core_pos : 0 < asCoreGap
  74
  75/-- Internet spectral-gap certificate. -/
  76def internetSpectralGapCert : InternetSpectralGapCert where
  77  gap_pos := spectralGap_pos
  78  strictly_decreasing := spectralGap_strictly_decreasing
  79  ratio := spectralGap_ratio
  80  as_core_pos := asCoreGap_pos
  81
  82end
  83end InternetSpectralGap
  84end NetworkScience
  85end IndisputableMonolith
  86

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