From 30236261fc156de8e174fbbcef3247f05c9dbb3d Mon Sep 17 00:00:00 2001 From: Artus KG Date: Tue, 13 Oct 2026 00:22:38 +0700 Subject: [PATCH] Correct format ceiling displays and stage endpoint checks --- research/format-limits/MANIFEST.sha256 | 6 +++--- research/format-limits/README.md | 2 +- research/format-limits/scripts/a1_ceiling_roots.py | 11 ++++++----- research/format-limits/scripts/a2_ceiling_sup.py | 8 +++++--- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/research/format-limits/MANIFEST.sha256 b/research/format-limits/MANIFEST.sha256 index 847f929c23..8037e6f67c 100644 --- a/research/format-limits/MANIFEST.sha256 +++ b/research/format-limits/MANIFEST.sha256 @@ -1,7 +1,7 @@ 31f6e8be64f321cc58730c4fbbdba0d2f7f8b704fb3d5da23303e219d754c47d DEPENDS.json c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE d16991367957b1de0cb3c9d4b61667482c3d4985903f15846051c65812c81611 NOTICE.md -0fa0d6b2df96ddc06b876c41c5fa8d2335b97f36bc8f17d1371296d23199c263 README.md +1bcd80c1cd61fddae9f3a7f00fc9d1c796410408251e576600e94c19b16b1e5e README.md ecdc9cb66e0631cd311ffae9c742dd1173efb99803a537778c76cdd4ea0bda1e SOURCES.json 810e9c5c3222811ee5d4b52b3429f7700ab578836f76418bada521bea98b1001 data/ceiling/gap568-inputs.json 5445f842587ab968c5001491e6479e7cc691b5114ab234652ce25b9272e2092f data/census/anchors.json @@ -18,8 +18,8 @@ cde64e210720e0cafbea5a242ee3747d3f34447bfdbc53c62114d6c34c71feeb data/vendor/pr 6f99cffd73076a768d39c21bf97ced42b6a5d3228b1dcef79d6f072dd35c0ee5 data/vendor/pr569/width7-eight-FULL-WORD.json.gz ee0fecf86bddcc5f4e675c60fbd5c572bd48269368a37a38c070346eefa3dd4a data/vendor/pr571/combined-eight-local-FULL-WORD.json.gz 6a080563ee39cc2c1c527bb6fb9c822253a7ee7202b7c5e53030e5526f973817 requirements.txt -d763514fc92933875b8cef8535b881cae4536937918f2a3a5d8dc87dda207dff scripts/a1_ceiling_roots.py -1628325b8c15519a6fb5850461344b90a88d950948d8c47d8d19c00a95c17a1d scripts/a2_ceiling_sup.py +7ef64e261cbcc5ff69c67653264d0448d1c004bf6b879314fc2814f45274d331 scripts/a1_ceiling_roots.py +3a6ab0ad504b6e306ade332974d9e0a6226b39ee3cc378eda642367e9ce9214f scripts/a2_ceiling_sup.py 1dc82914bf5a6ee5d1f27ea5cfbe404b83279c327cac2f56142a47a443a87159 scripts/a3_axioms.py b2e90cbb329bfebd954166637ed04488479dd7acca32e0c6102d4a3631c347f4 scripts/a4_gap.py 6479c189696f53cc505febb2c81c4b69a5bf54f211ee4ae64ff841041244b060 scripts/a5_scope_multipliers.py diff --git a/research/format-limits/README.md b/research/format-limits/README.md index 2f7aaf5b82..95c7ae59f2 100644 --- a/research/format-limits/README.md +++ b/research/format-limits/README.md @@ -117,7 +117,7 @@ is increasing with fixed point s0, so κ ≤ X/(1 + X) with X = min(X_bit*, X_cx Roots are rational-interval brackets of width < 10⁻¹⁵; the upper end is the certified value. -- **κ ≤ 5.1594938·10⁻³ < 5.1595·10⁻³**; the complex side binds. The bit-only corollary is c/(1 + c) ≤ 5.9647·10⁻³. +- **κ ≤ 5.1594939·10⁻³ < 5.1595·10⁻³**; the complex side binds. The bit-only corollary is c/(1 + c) ≤ 5.964704·10⁻³. - **The supremum over s is at s = 5** on both units. For odd s = 7..401, the certified D_s/Cost_s stays below X(5); the largest values are 5.2311·10⁻³ (bit) and 4.5292·10⁻³ (complex), both at s = 7. For s ≥ 403 a tail bound applies: Cost_s/v ≥ 2Σ_{p 2Ka), and diff --git a/research/format-limits/scripts/a1_ceiling_roots.py b/research/format-limits/scripts/a1_ceiling_roots.py index 99d470c031..abbc7c1550 100644 --- a/research/format-limits/scripts/a1_ceiling_roots.py +++ b/research/format-limits/scripts/a1_ceiling_roots.py @@ -33,8 +33,9 @@ 'cx-120/72': {3: 3.5307429201300307e-3, 5: 4.535607180902823e-3, 7: 4.059761375276634e-3, 9: 3.6334780884322328e-3, 11: 3.2929429181725836e-3, 13: 3.0181922014469375e-3}, } -KAPPA_CEILING = 5.1595e-3 # rev. 2, complex binds -KAPPA_BIT_ONLY = 5.9647e-3 # bit-only corollary c/(1+c) +KAPPA_CEILING = Fr('0.0051595') # rev. 2 headline, complex binds +KAPPA_FINE = Fr('0.0051594939') # outward display of the complex ceiling +KAPPA_BIT_ONLY = Fr('0.005964704') # outward display of the bit-only corollary c/(1+c) KAPPA_REV1 = 4.5151e-3 # superseded rev. 1 value (x = 3/5) FRONTIER = {'bit': 1.733052823330162e-3, 'cx': 0.00159868506668458107128} # #555 c (s = 9), #568 b (s = 9) HEADROOM_S9 = {'bit': 2.658, 'cx': 2.499} @@ -56,9 +57,9 @@ xb, xc = tab['bit-111/63'][5]['hi'], tab['cx-112/64'][5]['hi'] Xmin = min(xb, xc) kap = Xmin / (1 + Xmin) -check('A1.kappa-ceiling', xc < xb and near(kap, KAPPA_CEILING, 7), - 'X_bit* %.5e, X_cx* %.5e (complex binds); kappa <= X/(1+X) = %.7e' % (xb, xc, float(kap))) -check('A1.kappa-bit-only', near(xb / (1 + xb), KAPPA_BIT_ONLY, 7), 'c/(1+c) <= %.7e' % float(xb / (1 + xb))) +check('A1.kappa-ceiling', xc < xb and kap <= KAPPA_FINE < KAPPA_CEILING, + 'X_bit* %.5e, X_cx* %.5e (complex binds); kappa <= %s' % (xb, xc, KAPPA_FINE)) +check('A1.kappa-bit-only', xb / (1 + xb) <= KAPPA_BIT_ONLY, 'c/(1+c) <= %s' % KAPPA_BIT_ONLY) x1 = min(tab['bit-120/72'][5]['hi'], tab['cx-120/72'][5]['hi']) check('A1.rev1-superseded', near(x1 / (1 + x1), KAPPA_REV1, 7), 'the x = 3/5 scope gives %.7e; the punctured units have x = 63/111, 64/112 < 3/5' % float(x1 / (1 + x1))) diff --git a/research/format-limits/scripts/a2_ceiling_sup.py b/research/format-limits/scripts/a2_ceiling_sup.py index dc6a7d0050..31647ab646 100644 --- a/research/format-limits/scripts/a2_ceiling_sup.py +++ b/research/format-limits/scripts/a2_ceiling_sup.py @@ -20,13 +20,15 @@ for name, (h, cst, v) in UNITS.items(): x = Fr(cst, v) - x5 = X(5, h, 1, x)['hi'] + x5_box = X(5, h, 1, x) + x5 = x5_box['hi'] + x5_lo = x5_box['lo'] worst, sworst, allbelow = Fr(0), None, True for s in range(7, 402, 2): prof, m, D = profile(s, h, 1, x) clo, _ = cost_iv(prof, m) ub = D / clo - allbelow &= ub < x5 + allbelow &= ub < x5_lo if ub > worst: worst, sworst = ub, s ew, es = EXPECTED_WORST[name] @@ -36,7 +38,7 @@ K = 201 s = 2 * K + 1 tail = float(1 - x) * s / (4 * a * (K * K / 4 - K / math.e - K / 2)) - check('A2.tail.' + name, tail < float(x5) and near(tail, EXPECTED_TAIL[name], 7), + check('A2.tail.' + name, tail < float(x5_lo) and near(tail, EXPECTED_TAIL[name], 7), 'analytic tail bound at s = 403: %.3e (decreasing in s)' % tail) bad = [K for K in range(2, 5001) if sum(p * math.log(K / p) for p in range(1, K)) < K * K / 4 - K / math.e - K / 2] check('A2.tail-inequality', not bad, 'sum_{p= K^2/4 - K/e - K/2 for K = 2..5000')