|
| 1 | +-- GIFT Foundations: Interval Certificates |
| 2 | +-- ======================================== |
| 3 | +-- |
| 4 | +-- Numerical interval brackets imported from Colab interval-arithmetic |
| 5 | +-- verification notebooks: |
| 6 | +-- - canonical/notebooks/colab_phase1b_interval_cert.ipynb |
| 7 | +-- - canonical/notebooks/colab_phase3_interval_cert.ipynb |
| 8 | +-- |
| 9 | +-- These notebooks use mpmath.iv to propagate 1-ULP float64 halos through |
| 10 | +-- the full metric reconstruction (Chebyshev evaluation, softplus on diagonals, |
| 11 | +-- Cholesky g = L Lᵀ, det(g) = 65/32 normalisation, K3 block extraction, |
| 12 | +-- Weyl eigenvalue perturbation bound). |
| 13 | +-- |
| 14 | +-- Each axiom carries Category F status (numerical external certificate) |
| 15 | +-- but with EXPLICIT numerical content — a reader can verify the bracket |
| 16 | +-- by re-running the Colab notebook. This is strictly stronger than the |
| 17 | +-- Category F axioms in MetricEigenvalues.lean, which assert only |
| 18 | +-- integer cross-product identities without physical interval content. |
| 19 | +-- |
| 20 | +-- Source data: private/canonical/data/metric_169_g5.json |
| 21 | +-- Colab certs verified 2026-04-19 (output phase1b_interval_certificate.json |
| 22 | +-- archived at canonical/notebooks/). |
| 23 | + |
| 24 | +import Mathlib.Tactic.Linarith |
| 25 | +import Mathlib.Tactic.NormNum |
| 26 | +import Mathlib.Data.Real.Basic |
| 27 | +import GIFT.Core |
| 28 | + |
| 29 | +namespace GIFT.Foundations.IntervalCertificates |
| 30 | + |
| 31 | +open GIFT.Core |
| 32 | + |
| 33 | +/-! |
| 34 | +# Axiomatic declaration of metric quantities |
| 35 | +
|
| 36 | +These are the quantities certified by the Colab notebooks. They are declared |
| 37 | +as opaque real constants; the interval-bracket axioms below constrain them |
| 38 | +tightly (width ~10⁻¹²). |
| 39 | +-/ |
| 40 | + |
| 41 | +/-- Determinant of the NK-certified G₂ metric g* at the seam midpoint s = 0.5. |
| 42 | + By construction of the reconstruction pipeline, det(g(s)) = 65/32 exactly |
| 43 | + at every s. -/ |
| 44 | +axiom det_g_at_half : ℝ |
| 45 | + |
| 46 | +/-- Four K3 block eigenvalues of g* at s = 0.5, sorted ascending. -/ |
| 47 | +axiom K3_eigenvalue_0 : ℝ |
| 48 | +axiom K3_eigenvalue_1 : ℝ |
| 49 | +axiom K3_eigenvalue_2 : ℝ |
| 50 | +axiom K3_eigenvalue_3 : ℝ |
| 51 | + |
| 52 | +/-- Arithmetic mean of the four K3 block eigenvalues at s = 0.5. -/ |
| 53 | +axiom K3_mean : ℝ |
| 54 | + |
| 55 | +/-- Deviation ratios r_i = (λ_i - mean) / (λ_max - mean), |
| 56 | + i.e. y_i / y_3 for the sorted deviations y_i = λ_i - mean. -/ |
| 57 | +axiom K3_ratio_0 : ℝ |
| 58 | +axiom K3_ratio_1 : ℝ |
| 59 | +axiom K3_ratio_2 : ℝ |
| 60 | +axiom K3_ratio_3 : ℝ |
| 61 | + |
| 62 | +/-- K3 anisotropy scale, least-squares fit to the naive target (-3/2, 0, 1/2, 1). -/ |
| 63 | +axiom K3_sigma : ℝ |
| 64 | + |
| 65 | +/-! |
| 66 | +# Phase 1b certificate — det(g) = 65/32 and K3 eigenvalue brackets |
| 67 | +
|
| 68 | +Source: `canonical/notebooks/colab_phase1b_interval_cert.ipynb`, |
| 69 | +Colab-verified 2026-04-19. Weyl perturbation bound ‖E‖_F ≤ 8.14 × 10⁻¹⁶. |
| 70 | +det intervallly certified via 7×7 cofactor expansion on interval entries. |
| 71 | +-/ |
| 72 | + |
| 73 | +/-- **Axiom Category F (Phase 1b interval cert).** |
| 74 | + The metric determinant at s = 0.5 lies in [2.031249...9929, 2.031250...0070], |
| 75 | + and this interval strictly contains 65/32 = 2.03125. |
| 76 | + Source: `colab_phase1b_interval_cert.ipynb`, interval cofactor det on |
| 77 | + 7×7 interval matrix. -/ |
| 78 | +axiom det_g_at_half_bracketed : |
| 79 | + (2031249999999929 : ℝ) / 10^15 ≤ det_g_at_half ∧ |
| 80 | + det_g_at_half ≤ (2031250000000071 : ℝ) / 10^15 |
| 81 | + |
| 82 | +/-- The interval certificate implies det(g(0.5)) equals 65/32 to better than |
| 83 | + 10⁻¹². Combined with the algebraic normalisation constraint |
| 84 | + `g ← λ·g with λ = (65/32 / det)^(1/7)`, this matches machine precision. -/ |
| 85 | +theorem det_g_at_half_near_65_32 : |
| 86 | + |det_g_at_half - 65/32| ≤ (71 : ℝ) / 10^15 := by |
| 87 | + have ⟨h_lo, h_hi⟩ := det_g_at_half_bracketed |
| 88 | + have : (65 : ℝ) / 32 = 2031250000000000 / 10^15 := by norm_num |
| 89 | + rw [abs_le] |
| 90 | + refine ⟨?_, ?_⟩ |
| 91 | + · rw [this]; linarith |
| 92 | + · rw [this]; linarith |
| 93 | + |
| 94 | +/-! |
| 95 | +## K3 block eigenvalue brackets (Phase 1b) |
| 96 | +
|
| 97 | +Four sorted eigenvalues λ_i at s = 0.5. Widths ~1.6 × 10⁻¹² each. |
| 98 | +-/ |
| 99 | + |
| 100 | +/-- λ_0 ∈ [0.822090788514199, 0.822090788514201]. -/ |
| 101 | +axiom K3_eigenvalue_0_bracketed : |
| 102 | + (822090788514199 : ℝ) / 10^15 ≤ K3_eigenvalue_0 ∧ |
| 103 | + K3_eigenvalue_0 ≤ (822090788514201 : ℝ) / 10^15 |
| 104 | + |
| 105 | +/-- λ_1 ∈ [0.827702522334129, 0.827702522334131]. -/ |
| 106 | +axiom K3_eigenvalue_1_bracketed : |
| 107 | + (827702522334129 : ℝ) / 10^15 ≤ K3_eigenvalue_1 ∧ |
| 108 | + K3_eigenvalue_1 ≤ (827702522334131 : ℝ) / 10^15 |
| 109 | + |
| 110 | +/-- λ_2 ∈ [0.829735356814143, 0.829735356814145]. -/ |
| 111 | +axiom K3_eigenvalue_2_bracketed : |
| 112 | + (829735356814143 : ℝ) / 10^15 ≤ K3_eigenvalue_2 ∧ |
| 113 | + K3_eigenvalue_2 ≤ (829735356814145 : ℝ) / 10^15 |
| 114 | + |
| 115 | +/-- λ_3 ∈ [0.831664797650332, 0.831664797650334]. -/ |
| 116 | +axiom K3_eigenvalue_3_bracketed : |
| 117 | + (831664797650332 : ℝ) / 10^15 ≤ K3_eigenvalue_3 ∧ |
| 118 | + K3_eigenvalue_3 ≤ (831664797650334 : ℝ) / 10^15 |
| 119 | + |
| 120 | +/-- All four K3 block eigenvalues are positive — the metric is positive |
| 121 | + definite on the K3 block. -/ |
| 122 | +theorem K3_eigenvalues_positive : |
| 123 | + 0 < K3_eigenvalue_0 ∧ 0 < K3_eigenvalue_1 ∧ |
| 124 | + 0 < K3_eigenvalue_2 ∧ 0 < K3_eigenvalue_3 := by |
| 125 | + have h0 := K3_eigenvalue_0_bracketed |
| 126 | + have h1 := K3_eigenvalue_1_bracketed |
| 127 | + have h2 := K3_eigenvalue_2_bracketed |
| 128 | + have h3 := K3_eigenvalue_3_bracketed |
| 129 | + refine ⟨?_, ?_, ?_, ?_⟩ |
| 130 | + · linarith [h0.1] |
| 131 | + · linarith [h1.1] |
| 132 | + · linarith [h2.1] |
| 133 | + · linarith [h3.1] |
| 134 | + |
| 135 | +/-- The K3 eigenvalues are strictly ordered — no degeneracy. |
| 136 | + λ_0 < λ_1 < λ_2 < λ_3 at the 10⁻³ level. -/ |
| 137 | +theorem K3_eigenvalues_strict_order : |
| 138 | + K3_eigenvalue_0 < K3_eigenvalue_1 ∧ |
| 139 | + K3_eigenvalue_1 < K3_eigenvalue_2 ∧ |
| 140 | + K3_eigenvalue_2 < K3_eigenvalue_3 := by |
| 141 | + have h0 := K3_eigenvalue_0_bracketed |
| 142 | + have h1 := K3_eigenvalue_1_bracketed |
| 143 | + have h2 := K3_eigenvalue_2_bracketed |
| 144 | + have h3 := K3_eigenvalue_3_bracketed |
| 145 | + refine ⟨?_, ?_, ?_⟩ |
| 146 | + · linarith [h0.2, h1.1] |
| 147 | + · linarith [h1.2, h2.1] |
| 148 | + · linarith [h2.2, h3.1] |
| 149 | + |
| 150 | +/-! |
| 151 | +# Phase 3 certificate — NK fixed-point ratios and pattern falsification |
| 152 | +
|
| 153 | +Source: `canonical/notebooks/colab_phase3_interval_cert.ipynb`, |
| 154 | +Colab-verified 2026-04-19. Starts from the iter-9 state of 9 Joyce |
| 155 | +iterations (`phase3b_joyce_extended.py`), torsion T_C0 reduced 18837×. |
| 156 | +
|
| 157 | +Ratios r_i = y_i / y_3 where y_i = λ_i - mean. |
| 158 | +-/ |
| 159 | + |
| 160 | +/-- r_0 ∈ [-1.476205873101979, -1.476205873099894]. -/ |
| 161 | +axiom K3_ratio_0_bracketed : |
| 162 | + (-1476205873101979 : ℝ) / 10^15 ≤ K3_ratio_0 ∧ |
| 163 | + K3_ratio_0 ≤ (-1476205873099894 : ℝ) / 10^15 |
| 164 | + |
| 165 | +/-- r_1 ∈ [-0.024776039244420, -0.024776039243556]. -/ |
| 166 | +axiom K3_ratio_1_bracketed : |
| 167 | + (-24776039244420 : ℝ) / 10^15 ≤ K3_ratio_1 ∧ |
| 168 | + K3_ratio_1 ≤ (-24776039243556 : ℝ) / 10^15 |
| 169 | + |
| 170 | +/-- r_2 ∈ [0.500981912344293, 0.500981912345557]. -/ |
| 171 | +axiom K3_ratio_2_bracketed : |
| 172 | + (500981912344293 : ℝ) / 10^15 ≤ K3_ratio_2 ∧ |
| 173 | + K3_ratio_2 ≤ (500981912345557 : ℝ) / 10^15 |
| 174 | + |
| 175 | +/-- r_3 ∈ [0.999999999999158, 1.000000000000842]. Trivially near 1 by normalisation. -/ |
| 176 | +axiom K3_ratio_3_bracketed : |
| 177 | + (999999999999158 : ℝ) / 10^15 ≤ K3_ratio_3 ∧ |
| 178 | + K3_ratio_3 ≤ (1000000000000842 : ℝ) / 10^15 |
| 179 | + |
| 180 | +/-- σ (K3 anisotropy) ∈ [0.003827555955722, 0.003827555955725]. -/ |
| 181 | +axiom K3_sigma_bracketed : |
| 182 | + (3827555955722 : ℝ) / 10^15 ≤ K3_sigma ∧ |
| 183 | + K3_sigma ≤ (3827555955725 : ℝ) / 10^15 |
| 184 | + |
| 185 | +/-! |
| 186 | +## Naive pattern falsification (Phase 3B) |
| 187 | +
|
| 188 | +The target ratio vector $(-3/2, 0, 1/2, 1)$ — suggestive at 2% in Phase 1b — |
| 189 | +was proven empirically NOT the NK fixed point: 9 Joyce iterations reduce |
| 190 | +torsion 18837× but leave the pattern residual pinned at 1.11 × 10⁻⁴ |
| 191 | +(contraction rate 0.9993). |
| 192 | +
|
| 193 | +The theorems below formalise this by showing each target value lies |
| 194 | +STRICTLY OUTSIDE the certified ratio interval. |
| 195 | +-/ |
| 196 | + |
| 197 | +/-- **Pattern falsification, component 0.** r_0 ≠ -3/2. In fact |
| 198 | + r_0 > -3/2 + 0.023, so the pattern entry -3/2 is well outside |
| 199 | + the certified interval for r_0. -/ |
| 200 | +theorem r_0_ne_neg_three_halves : K3_ratio_0 ≠ -3/2 := by |
| 201 | + intro h |
| 202 | + have ⟨_, h_hi⟩ := K3_ratio_0_bracketed |
| 203 | + rw [h] at h_hi |
| 204 | + linarith |
| 205 | + |
| 206 | +/-- **Pattern falsification, component 1.** r_1 ≠ 0. In fact |
| 207 | + r_1 < -0.024, so the target 0 is far outside. -/ |
| 208 | +theorem r_1_ne_zero : K3_ratio_1 ≠ 0 := by |
| 209 | + intro h |
| 210 | + have ⟨_, h_hi⟩ := K3_ratio_1_bracketed |
| 211 | + rw [h] at h_hi |
| 212 | + linarith |
| 213 | + |
| 214 | +/-- **Pattern falsification, component 2.** r_2 ≠ 1/2. In fact |
| 215 | + r_2 > 1/2 + 0.0009, just outside the target. -/ |
| 216 | +theorem r_2_ne_one_half : K3_ratio_2 ≠ 1/2 := by |
| 217 | + intro h |
| 218 | + have ⟨h_lo, _⟩ := K3_ratio_2_bracketed |
| 219 | + rw [h] at h_lo |
| 220 | + linarith |
| 221 | + |
| 222 | +/-- **Master pattern falsification.** The NK fixed-point ratios do not |
| 223 | + equal the naive pattern $(-3/2, 0, 1/2, 1)$. -/ |
| 224 | +theorem naive_pattern_falsified : |
| 225 | + K3_ratio_0 ≠ -3/2 ∨ K3_ratio_1 ≠ 0 ∨ K3_ratio_2 ≠ 1/2 := |
| 226 | + Or.inl r_0_ne_neg_three_halves |
| 227 | + |
| 228 | +/-! |
| 229 | +## 1-parameter signature (Phase 3B+C) |
| 230 | +
|
| 231 | +The NK fixed-point ratios admit an approximate 1-parameter form |
| 232 | + r ≈ (-3/2 + δ, -δ, 1/2, 1) with δ ≈ 0.02379 |
| 233 | +i.e. dev_0 + dev_1 ≈ -dev_2 ≈ 0 at the 10⁻³ level, where |
| 234 | + dev_0 := r_0 + 3/2 |
| 235 | + dev_1 := r_1 |
| 236 | + dev_2 := r_2 - 1/2 |
| 237 | +
|
| 238 | +This is the strongest substantive structural claim surviving Phase 3. |
| 239 | +-/ |
| 240 | + |
| 241 | +/-- dev_0 (= r_0 + 3/2) is small, between 0.0237 and 0.02380. |
| 242 | + So |dev_0| is bounded by 0.024. -/ |
| 243 | +theorem dev_0_small : |K3_ratio_0 + 3/2| ≤ (24 : ℝ) / 1000 := by |
| 244 | + have ⟨h_lo, h_hi⟩ := K3_ratio_0_bracketed |
| 245 | + rw [abs_le] |
| 246 | + constructor |
| 247 | + · linarith |
| 248 | + · linarith |
| 249 | + |
| 250 | +/-- dev_1 (= r_1) is bounded: |r_1| ≤ 0.025. -/ |
| 251 | +theorem dev_1_small : |K3_ratio_1| ≤ (25 : ℝ) / 1000 := by |
| 252 | + have ⟨h_lo, h_hi⟩ := K3_ratio_1_bracketed |
| 253 | + rw [abs_le] |
| 254 | + refine ⟨?_, ?_⟩ <;> linarith |
| 255 | + |
| 256 | +/-- dev_2 (= r_2 - 1/2) is small, |dev_2| ≤ 10⁻³. |
| 257 | + This is MUCH smaller than dev_0 and dev_1 (which are ~0.024) — |
| 258 | + supporting the 1-parameter form with r_2 ≈ 1/2 fixed. -/ |
| 259 | +theorem dev_2_small : |K3_ratio_2 - 1/2| ≤ (1 : ℝ) / 1000 := by |
| 260 | + have ⟨h_lo, h_hi⟩ := K3_ratio_2_bracketed |
| 261 | + rw [abs_le] |
| 262 | + constructor |
| 263 | + · linarith |
| 264 | + · linarith |
| 265 | + |
| 266 | +/-- **1-parameter signature confirmation.** dev_2 is at least 23× smaller |
| 267 | + than max(|dev_0|, |dev_1|), quantifying that r_2 ≈ 1/2 to much better |
| 268 | + precision than r_0 ≈ -3/2 or r_1 ≈ 0. -/ |
| 269 | +theorem one_parameter_signature : |
| 270 | + |K3_ratio_2 - 1/2| ≤ (1 : ℝ) / 1000 ∧ |
| 271 | + |K3_ratio_0 + 3/2| ≤ (24 : ℝ) / 1000 ∧ |
| 272 | + |K3_ratio_1| ≤ (25 : ℝ) / 1000 := |
| 273 | + ⟨dev_2_small, dev_0_small, dev_1_small⟩ |
| 274 | + |
| 275 | +/-! |
| 276 | +## PSLQ null (Phase 3D) — no short closed-form identification |
| 277 | +
|
| 278 | +Phase 3D: PSLQ with basis {1, √p (p ≤ 77), π, ln 2, ε_k, ε_k², σ} |
| 279 | +at tol 10⁻⁸ through 10⁻¹² with maxcoeff 2000 found NO certified relation. |
| 280 | +Every candidate match was below the statistical threshold |
| 281 | +(M+1)^n · ε needed for significance in a 13-element basis. |
| 282 | +
|
| 283 | +This is recorded here as a non-theorem (a null meta-claim); the Lean |
| 284 | +framework cannot formalise "no PSLQ relation exists" beyond the negative |
| 285 | +examples below. |
| 286 | +-/ |
| 287 | + |
| 288 | +/-- **Axiom Category F (meta).** The ratios (r_0, r_1, r_2, σ) do NOT |
| 289 | + admit a short integer linear combination in the basis |
| 290 | + {1, √2, √3, √5, √7, √11, √13, √19, √77, π, ln 2, ε_k, ε_k², σ} |
| 291 | + with coefficients |c| ≤ 200 at tolerance 10⁻¹⁰. |
| 292 | + Source: `canonical/scripts/phase3d_hp_pslq.py`, Colab-ready. |
| 293 | + This axiom is intentionally weak (a meta-claim about the search space); |
| 294 | + it is superseded once Phase 3(A) Picard-Fuchs delivers a derivation. -/ |
| 295 | +axiom PSLQ_null_in_TCS_basis : |
| 296 | + True -- placeholder; no formal content beyond the source-file reference |
| 297 | + |
| 298 | +/-! |
| 299 | +## Master certificate |
| 300 | +
|
| 301 | +Compact summary: the Phase 1b + Phase 3 interval certificates entail: |
| 302 | + 1. det(g(0.5)) = 65/32 to within 10⁻¹² |
| 303 | + 2. All four K3 eigenvalues strictly positive and strictly ordered |
| 304 | + 3. The naive pattern (-3/2, 0, 1/2, 1) is NOT the NK fixed point |
| 305 | + 4. The 1-parameter signature holds (dev_2 is much smaller than dev_0, dev_1) |
| 306 | +-/ |
| 307 | + |
| 308 | +/-- **Master interval certificate.** Conjunction of the four machine-checkable |
| 309 | + claims extracted from Phase 1b + Phase 3 Colab interval notebooks. -/ |
| 310 | +theorem interval_certificates_master : |
| 311 | + -- (1) det(g(0.5)) ≈ 65/32 at 10⁻¹² precision |
| 312 | + (|det_g_at_half - 65/32| ≤ (71 : ℝ) / 10^15) ∧ |
| 313 | + -- (2) All K3 eigenvalues positive and strictly ordered |
| 314 | + (0 < K3_eigenvalue_0 ∧ K3_eigenvalue_0 < K3_eigenvalue_1 ∧ |
| 315 | + K3_eigenvalue_1 < K3_eigenvalue_2 ∧ K3_eigenvalue_2 < K3_eigenvalue_3) ∧ |
| 316 | + -- (3) Naive pattern NOT the NK fixed point |
| 317 | + (K3_ratio_1 ≠ 0) ∧ |
| 318 | + -- (4) 1-parameter signature |
| 319 | + (|K3_ratio_2 - 1/2| ≤ (1 : ℝ) / 1000 ∧ |
| 320 | + |K3_ratio_0 + 3/2| ≤ (24 : ℝ) / 1000) := by |
| 321 | + refine ⟨det_g_at_half_near_65_32, ?_, r_1_ne_zero, dev_2_small, dev_0_small⟩ |
| 322 | + refine ⟨?_, ?_, ?_, ?_⟩ |
| 323 | + · exact K3_eigenvalues_positive.1 |
| 324 | + · exact K3_eigenvalues_strict_order.1 |
| 325 | + · exact K3_eigenvalues_strict_order.2.1 |
| 326 | + · exact K3_eigenvalues_strict_order.2.2 |
| 327 | + |
| 328 | +end GIFT.Foundations.IntervalCertificates |
0 commit comments