From 54d4794d1cfbeb0d883f95b459d36db0969008a6 Mon Sep 17 00:00:00 2001 From: James Reed Date: Wed, 21 Oct 2026 18:49:07 -0700 Subject: [PATCH] Record the four-bit absorption of (9 p^2)^g Co-authored-by: Cursor --- research/gaussian-tensor-nine/README.md | 146 +++++++++++++++++++++ research/gaussian-tensor-nine/SOURCES.json | 24 ++++ research/gaussian-tensor-nine/TASK.json | 74 +++++++++++ research/gaussian-tensor-nine/VERIFY.json | 21 +++ research/gaussian-tensor-nine/verify.py | 105 +++++++++++++++ 5 files changed, 370 insertions(+) create mode 100644 research/gaussian-tensor-nine/README.md create mode 100644 research/gaussian-tensor-nine/SOURCES.json create mode 100644 research/gaussian-tensor-nine/TASK.json create mode 100644 research/gaussian-tensor-nine/VERIFY.json create mode 100644 research/gaussian-tensor-nine/verify.py diff --git a/research/gaussian-tensor-nine/README.md b/research/gaussian-tensor-nine/README.md new file mode 100644 index 0000000000..96c9f03626 --- /dev/null +++ b/research/gaussian-tensor-nine/README.md @@ -0,0 +1,146 @@ +# The factor (9 p^2)^g is absorbed by the same four-bit gate + +**Claim type:** an explicit absorption bound for one tensor error. +**No new κ.** The per-axis ceiling `9 p^2` stays a hypothesis. The selected +record remains `23/10000`. + +## Question + +#4493 shows that the within-cell formula is strictly below `9 p^2`, and asks +whether the #4484 gate still absorbs + +```text +g (9 p^2)^g exp(K p - p^2). +``` + +That gate spends four bits because `10 < 16`. The first step is to put `9` +in place of `10` in the exponent `L + 4 g + 2 g L + 2 K p - p^2`, and to test +whether three bits fail because `9 > 8`. + +## Lemma + +Let `p ≥ 2`, `g ≥ 1`, `K ≥ 0` and `C ≥ 0` be integers, and let +`L = ceil(log2 p)`. If + +```text +p ≥ max(64, 4K + 2C) and 16 g L ≤ p, +``` + +then + +```text +g (9 p^2)^g exp(K p - p^2) < 2^{-C p}. +``` + +The case `K = 0` is the monomial in the question. A global factor `exp(K p)` +does not change the conclusion. Whenever `g log p = o(p)`, every fixed pair +`K, C` satisfies the gate for all large `p`. + +Four bits are enough because `9 < 16`. Three bits are not a majorant of this +shape: `9 > 8`, so + +```text +(9 p^2)^g > 2^{3 g} p^{2 g} +``` + +for every integer `p ≥ 2` and `g ≥ 1`. A negative exponent written with `3` +in place of `4` does not repair that comparison. + +The gate is not optional for every `g`. At `g = p^2` the same substituted +error is greater than 1 for every integer `p ≥ 2`. + +## Proof + +The series `1 + 1 + 1/2 = 5/2 > 2` gives `e > 2`, so `exp(-p^2) < 2^{-p^2}`. +For `k ≥ 2`, `k! ≥ 2^{k-1}`: the values at 2, 3 and 4 are `2`, `6` and `24`, +and the step uses `k + 1 ≥ 2`. The tail of `e` is then at most the geometric +series of ratio `1/2`, so `e < 3 < 4` and `exp(K p) < 4^{K p} = 2^{2 K p}` +whenever `K p > 0`. At `K = 0` the factor is 1. + +Since `9 < 16`, `(9 p^2)^g < 2^{4 g} p^{2 g}`. Also `p ≤ 2^L`, so +`p^{2 g} ≤ 2^{2 g L}`. The hypothesis `16 g L ≤ p` forces `g < 2^L`, because +`L ≥ 1` and therefore `g ≤ p/(16 L) ≤ p/16`. Hence + +```text +g (9 p^2)^g exp(K p - p^2) < 2^{L + 4 g + 2 g L + 2 K p - p^2}. +``` + +It remains to show that the exponent is strictly less than `-C p`. For every +integer `p ≥ 64`, `8 L ≤ p`. The base is `8 · 7 = 56 ≤ 64` at `p = 2^6`, and +`8 ≤ 64`. If `8(m + 1) ≤ 2^m`, then `8(m + 2) ≤ 2^m + 8 ≤ 2^{m + 1}`. On each +dyadic interval the largest ratio of `L` to `p` is at the left endpoint, so +`8 L ≤ p` for every integer `p ≥ 64`. + +The gate `16 g L ≤ p` gives `2 g L ≤ p/8` and, with `L ≥ 1`, `4 g ≤ p/4`. +The linear factor obeys `(2 K + C) p ≤ p^2 / 2` exactly when +`p ≥ 4 K + 2 C`, because `2(2 K + C) = 4 K + 2 C`. Adding the four pieces +produces at most + +```text +p/8 + p/4 + p/8 + p^2/2 = p/2 + p^2/2. +``` + +The slack against `p^2` is `p(p - 1)/2`. At `p = 2` this is 1, and it +increases by `p` at the next integer. The exponent is therefore at most +`-C p - 1`. + +The three-bit comparison reverses. Since `9 > 8 = 2^3`, + +```text +(9 p^2)^g > (8 p^2)^g = 2^{3 g} p^{2 g}. +``` + +At the legal point `p = 128`, `L = 7`, `g = 1`, both +`L + 4 g + 2 g L - p^2` and `L + 3 g + 2 g L - p^2` are negative, while +`9 p^2 > 8 p^2`. Negativity of the three-bit exponent is not an upper bound +for the monomial. + +If `g log p = o(p)`, then `g log2 p ≤ p/32` for large `p`. For `p ≥ 3`, +`L ≤ 2 log2 p`, so `p/(32 log2 p) ≤ p/(16 L)` and the gate `16 g L ≤ p` +holds eventually. Every fixed `K` and `C` then satisfy `p ≥ 4 K + 2 C` as +well. + +At `g = p^2`, `(9 p^2)^{p^2} > 4^{p^2} > exp(p^2)` because `9 p^2 ≥ 36 > 4` +and `e < 4`. The substituted error is then greater than 1, which is not below +`2^{-C p}`. + +## Not covered + +- A proof that each section inverse is at most `9 p^2`. This comparison + starts from that ceiling. +- The telescoping monomial `g (9 p^2)^{g-1} p^6 exp(-p^2)`. +- Editing the #4100 notes. They still say `g p^{10 g} exp(-p^2)`. +- Any new κ. + +## Reproduce + +```sh +python3.12 -B scripts/research_package.py --package research/gaussian-tensor-nine --check-only +python3.12 -B scripts/research_package.py --package research/gaussian-tensor-nine +``` + +Base `2a13eb1827784206202db90e5dc8327cf8a250db`, priority revision 7, selection +refresh κ = `23/10000`. Upstream was fetched at 2026-10-22T01:47:06Z and was +still that commit. + +Overlap snapshot: open PRs fetched 2026-10-22T01:48:03Z (348 records) and +discussions fetched 2026-10-22T01:48:45Z (3371 records). A search for +`(9 p^2)^g`, `three bits` and `L + 4 g` returned this draft and the #4493 +handoff, which leaves the absorption open, plus unrelated three-bit tape and +encoding notes. A search miss is not a novelty certificate. #4484 is the +four-bit gate. HALO is the written error. + +## Open next questions + +1. **Does the same gate absorb `g (9 p^2)^{g-1} p^6 exp(K p - p^2)`?** The + extra factor against this package is `p^4 / 9`, because + `g (9 p^2)^{g-1} p^6 = g (9 p^2)^g (p^4 / 9)`. The first step is to place + that factor in the exponent as `4 L` and clear it against the same eighths. + +## Credit + +- The four-bit gate and the exponent `L + 4 g + 2 g L + 2 K p - p^2` are #4484's. +- The coefficient 9, and this question, are #4493's. +- The written error `g p^{10 g} exp(-p^2)` is #4100's. + +Prepared by James Reed with substantial Cursor Grok 4.7 assistance. Apache-2.0. diff --git a/research/gaussian-tensor-nine/SOURCES.json b/research/gaussian-tensor-nine/SOURCES.json new file mode 100644 index 0000000000..b6dd82035c --- /dev/null +++ b/research/gaussian-tensor-nine/SOURCES.json @@ -0,0 +1,24 @@ +{ + "schema_version": 1, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65", + "sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96" + }, + { + "path": "research/unconditional-batched-crt/HALO.md", + "usage": "input", + "git_blob": "5f601b3c8ac368aa79aa1007effe5933a360237b", + "sha256": "a2adcf18614983e9255def6d3f5e59be0018a392e418d65e94323722838289cc" + } + ] +} diff --git a/research/gaussian-tensor-nine/TASK.json b/research/gaussian-tensor-nine/TASK.json new file mode 100644 index 0000000000..6874b056ad --- /dev/null +++ b/research/gaussian-tensor-nine/TASK.json @@ -0,0 +1,74 @@ +{ + "schema_version": 1, + "task_id": "uniform-transfer-audit", + "priority_revision": 7, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "original_card": { + "id": "uniform-transfer-audit", + "question": "Does one quantified step of the proposed #4100 all-size construction hold at its actual caller?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/unconditional-batched-crt/README.md" + ], + "methods": [ + "Prove one missing implication with explicit quantified hypotheses.", + "Find an exact counterexample at the claimed interface boundary." + ], + "acceptance_gate": "Identify the proposition and what would change downstream; do not equate a finite replay with a universal proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read PROOF.md and AUDIT.md in #4100. Select one distinct obligation: CRT total repair, native/free-algebra lifting, precision/conditioning, or complete fixed-tape cost. This is an author-submitted proof, not an accepted unconditional theorem.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Check live handoffs; name one proposition, its caller, quantified domain and dependency closure. Independently prove the implication or exhibit a precise gap/counterexample. Prioritize CRT.md total repair or COMPLEX.md free-algebra lift only if unclaimed. Stop at the chosen obligation; do not substitute finite samples or root arithmetic for an all-size proof, or launch the complete package by default.", + "bottleneck_link": "Finite supplier improvements are useful only under the retained transfer obligations.", + "allowed_variations": [ + "One CRT repair, native lift, precision/conditioning or tape-cost proposition, with its exact caller." + ], + "scope_change_triggers": [ + "Replacing a quantified obligation with another finite smoke test.", + "Treating archive intake, an author PASS receipt or a finite composed fixture as discharge of the universal hypotheses." + ], + "overlap_terms": [ + "uniform transfer", + "all-size", + "precision", + "4100", + "unconditional-batched-crt" + ], + "existing_checks": [ + { + "scope": "PR #4100: proposed unconditional construction and finite checks, without independent acceptance.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Independent proof audit of one caller-bound all-size implication; all other premises remain explicit.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + "scope_status": "refined", + "actual_scope": "Decide whether the #4484 gate absorbs g (9 p^2)^g exp(K p - p^2), and whether three bits fail because 9 > 8.", + "scope_change_reason": "The card asks for one caller-bound precision implication. This package only substitutes the coefficient 9 into that gate. It does not prove a 9 p^2 operator bound and does not claim a new kappa.", + "bottleneck_link": "The selected frontier is unchanged. This is the absorption left open by the coefficient 9.", + "budget_minutes": 60, + "stop_rule": "Stop once the factor (9 p^2)^g is compared with the four-bit gate. Do not absorb the telescoping p^6 factor, do not prove the ideal gaps, do not edit the #4100 notes, and do not claim a new kappa.", + "outcome": "completed", + "evidence": "python3.12 -B scripts/research_package.py --package research/gaussian-tensor-nine", + "author": "James Reed", + "ai_assistance": "Substantial help from Cursor Grok 4.7 on the four-bit comparison and the package text.", + "open_questions": [ + { + "question": "Does the same gate absorb g (9 p^2)^{g-1} p^6 exp(K p - p^2)?", + "why_it_matters": "The tensor telescope still carries one section error p^6 exp(-p^2) against g-1 factors of the coefficient 9.", + "first_step": "Place the extra factor p^4 / 9 in the exponent as 4 L and clear it against the same eighths.", + "blocked_by": "The reading of a 9 p^2 operator ceiling remains conditional on the ideal gaps. The absorption itself still treats that ceiling as a hypothesis." + } + ] +} diff --git a/research/gaussian-tensor-nine/VERIFY.json b/research/gaussian-tensor-nine/VERIFY.json new file mode 100644 index 0000000000..24cf26f32c --- /dev/null +++ b/research/gaussian-tensor-nine/VERIFY.json @@ -0,0 +1,21 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "certificates/selected-result.json", + "research/unconditional-batched-crt/HALO.md" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 60, + "checks": "Under p >= max(64, 4K+2C) and 16 g L <= p, g (9 p^2)^g exp(Kp - p^2) < 2^{-C p} because 9 < 16 leaves the exponent L + 4 g + 2 g L + 2 K p - p^2 at most -C p - 1; three bits fail because 9 > 8." + } + ] +} diff --git a/research/gaussian-tensor-nine/verify.py b/research/gaussian-tensor-nine/verify.py new file mode 100644 index 0000000000..23f8ea5850 --- /dev/null +++ b/research/gaussian-tensor-nine/verify.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +"""The factor (9 p^2)^g is absorbed by the same four-bit gate. + +Every comparison is an integer identity. The per-axis ceiling is a hypothesis. +""" + +from __future__ import annotations + +import hashlib +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +PACKAGE = ROOT / "research" / "gaussian-tensor-nine" + + +def digest(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def ceil_log2(value: int) -> int: + level = 0 + power = 1 + while power < value: + power *= 2 + level += 1 + return level + + +def pins_and_phrases() -> None: + sources = json.loads((PACKAGE / "SOURCES.json").read_text(encoding="utf-8")) + for row in sources["files"]: + if row["usage"] == "input": + assert digest(ROOT / row["path"]) == row["sha256"], row["path"] + halo = (ROOT / "research/unconditional-batched-crt/HALO.md").read_text(encoding="utf-8") + selected = json.loads( + (ROOT / "certificates/selected-result.json").read_text(encoding="utf-8") + ) + assert "g p^(10g) exp(-p^2)," in halo + assert "exp(O(p)) leaves this below 2^-Cp for every fixed C eventually, provided" in halo + assert "g log p=o(p)." in halo + assert selected["kappa"] == "23/10000" + + +def series_bounds() -> None: + # e > 1 + 1 + 1/2 = 5/2 > 2, and e < 3 < 4. + assert 5 > 4 + assert 3 < 4 + assert 2 >= 2 + assert 6 >= 4 + assert 24 >= 8 + assert 3 >= 2 + # Four bits clear 9, and three bits do not: 8 < 9 < 16. + assert 8 < 9 + assert 9 < 16 + assert 2**3 == 8 + assert 2**4 == 16 + + +def log_induction() -> None: + # For m >= 6, 8(m+1) <= 2^m, so 8 ceil(log2 p) <= p for every integer p >= 64. + assert 8 * 7 <= 64 + assert 8 <= 64 + assert 2**6 + 8 <= 2**7 + assert ceil_log2(64) == 6 + assert ceil_log2(65) == 7 + assert ceil_log2(128) == 7 + assert 8 * ceil_log2(128) <= 128 + + +def budget() -> None: + # The eighths 1+2+1 make a half, and p^2 - p is at least 2 for every integer p >= 2. + assert 1 + 2 + 1 == 4 + assert 4 - 2 == 2 + assert (3**2 - 3) - (2**2 - 2) == 2 * 2 + # p >= 4K + 2C is the cleared form of (2K+C) p <= p^2 / 2. + assert 2 * (2 * 3 + 5) == 4 * 3 + 2 * 5 + # Witness: p=128, L=7, g=1, K=0, C=0 meets the gate and the four-bit exponent is negative. + prime = 128 + level = ceil_log2(prime) + groups = 1 + assert 16 * groups * level <= prime + four = level + 4 * groups + 2 * groups * level - prime * prime + three = level + 3 * groups + 2 * groups * level - prime * prime + assert four < 0 + assert three < 0 + # The negative three-bit exponent is not an upper bound: 9 p^2 > 8 p^2. + assert 9 * prime * prime > 8 * prime * prime + assert 9 * 2**2 > 2**3 * 2**2 + # g = p^2 leaves the substituted error above 1, since 9 p^2 > 4 > e. + # The value 9 p^2 is smallest at p = 2 and increases by 9(2p+1). + assert 9 * 4 > 4 + assert 9 * (3**2) - 9 * (2**2) == 9 * (2 * 2 + 1) + + +def main() -> None: + pins_and_phrases() + series_bounds() + log_induction() + budget() + print("PASS_GAUSSIAN_TENSOR_NINE") + + +if __name__ == "__main__": + main()