Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions research/gaussian-slice-five-gate/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# The factor-5 gate absorbs one heavy slice

**Claim type:** an explicit absorption bound for one tensor slice.
**No new κ.** The trailing bound `p^{10}`, the section error, and the
ceiling `9 p^2` stay hypotheses. The selected record is `60403/20000000`.
The coefficient-9 monomials keep the published gate `16 g L ≤ p`.

## Question

#4668 absorbs the `g` copies under `6 g L ≤ p`, and asks whether one heavy
slice already fits under `5 g L ≤ p`. The exponent spends `10 g L`. The
named step is the fifths identity `400 g L = 80 · 5 g L`, then the test of
`20 p^2 - 80 p - 80` at `p = 64`.

This `5` is the coefficient of `g L`. It is not a three-bit majorant of
the ceiling `9`. #4495 still rejects three bits for that ceiling, because
`9 > 8`, and it still uses four bits because `9 < 16`.

## 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 5 g L ≤ p,
```

then

```text
(p^{10})^{g-1} p^6 (1 + p^4) exp(K p - p^2)
```

is strictly below `2^{-C p}`. The case `K = 0` is the slice in the
question. The exponent is at most `-C p - 1`.

This hypothesis is wider than the factor-6 gate. At `p = 70` and `g = 2`,
`L = 7`, so `5 g L = 70 ≤ 70` while `6 g L = 84 > 70`. The exponent
there is `-4759`. The factor-6 comparison `480 g L ≤ 80 p` fails at that
point: `6720 > 5600`.

At `p = 2` and `g = 1` the hypothesis fails, and the slice is larger
than `1`.

## Proof

Dropping the `1` in `1 + p^4` leaves exactly `p^{10 g}`. Since
`1 + p^4 < 2 p^4 ≤ 2^{4 L + 1}` and `p ≤ 2^L`, the polynomial part is
strictly below `2^{10 g L + 1}`. With `exp(-p^2) < 2^{-p^2}` and
`exp(K p) ≤ 2^{2 K p}`, the slice is strictly below `2^E` for

```text
E = 10 g L + 1 + 2 K p - p^2.
```

Clear `40 (E + C p)`, which is five times `8 (E + C p)`. The new gate
gives `400 g L = 80 · 5 g L ≤ 80 p`. The identity
`40 (2 K + C) = 20 (4 K + 2 C)` gives a linear contribution of at most
`20 p^2` once `p ≥ 4 K + 2 C`. The constant `1` contributes `40`. The
sum is at most

```text
-(20 p^2 - 80 p - 40).
```

The polynomial `20 p^2 - 80 p - 80` equals `76720` at `p = 64` and then
increases by `40 p - 60`. Thus `20 p^2 - 80 p - 40 ≥ 40` for every
integer `p ≥ 64`, so `40 (E + C p) ≤ -40` and `E ≤ -C p - 1`.

At `p = 2` and `g = 1`, `5 g L = 5 > 2`. The series of `e` through
`1/6!` is `13699/5040`. Terms after that have ratios at most `1/8`, so
the tail is strictly below `8/(7 · 5040)`. The gap up to `3` is
`1421/5040`, and `8 < 1421 · 7`, so `e < 3` and `exp(4) < 81`. The slice
equals `1088 exp(-4)`, and `81 < 1088`, so the slice is larger than `1`.

## Not covered

- The `g` copies of this slice under `5 g L ≤ p`.
- A gate factor smaller than `5`.
- A proof that `||H^{-1}||_2 ≤ p^{10}`. HALO assumes it.
- The section error `p^6 exp(-p^2)` and the leading ceiling `9 p^2`.
- Editing the #4100 notes, or the #4495 gate.
- Any new κ.

## Reproduce

```sh
python3.12 -B scripts/research_package.py --package research/gaussian-slice-five-gate --check-only
python3.12 -B scripts/research_package.py --package research/gaussian-slice-five-gate
```

Base `b58ad9ef4d4e861b0eaa5dba41742bdc072dca51`, priority revision 7.
Upstream was fetched at 2026-10-22T15:00:57Z and was that commit. The
pre-submit fetch at 2026-10-22T15:02:45Z was the same commit. The pinned
blobs for the selected record, the catalogue, both source READMEs, and
HALO.md match that main. The selection is κ = `60403/20000000`.

Overlap snapshot: open PRs fetched 2026-10-22T15:01:39Z (439 records) and
discussions fetched 2026-10-22T15:02:34Z (3595 records). Terms
`20 p^2 - 80 p - 80`, `slice-five-gate`, and `4759` reported 30 matches
and showed 8. The first two were this README and this TASK. The six shown
discussion hits are older BIT-stock notes whose commit text contains the
digits `4759`. A second search of the same cache, offline, dropped `4759`.
It returned this README, this TASK, and the #4668 DONE
(discussioncomment-19126212). That note leaves this one-slice question
open and names the test at `p = 64`. The handoff thread, reread at the
pre-submit fetch, still ends at that #4668 DONE. The open-PR list at that
time still starts at #4668. No matches is not a novelty certificate.

## Open next questions

1. **Do the `g` copies stay below `2^{-C p}` under `5 g L ≤ p`?** The
one-slice fifths spend `80 p`. Copies add one `L`, and `8 L ≤ p`
turns `40 L` into `5 p`. The first step is to test
`20 p^2 - 85 p - 80` at `p = 64`. Do not change the coefficient-9
monomial gate.

## Credit

- The factor-6 copies, and this question, are #4668's.
- The factor-6 slice is #4667's.
- The unequal factor `1 + p^4` is #4524's.
- The published gate `16 g L ≤ p` is #4495's. It is unchanged.
- The ceiling `9 p^2` is #4493's.
- The written tail `p^{10} exp(-p^2)` is #4100's.

Prepared by James Reed with substantial Cursor Grok 4.7 assistance. Apache-2.0.
36 changes: 36 additions & 0 deletions research/gaussian-slice-five-gate/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"schema_version": 1,
"base_commit": "b58ad9ef4d4e861b0eaa5dba41742bdc072dca51",
"files": [
{
"path": "certificates/selected-result.json",
"usage": "provenance",
"git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395",
"sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375"
},
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602",
"sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72"
},
{
"path": "research/gaussian-neumann-nine/README.md",
"usage": "input",
"git_blob": "54a8ce117a233e54e5057fd1edfa378e59527592",
"sha256": "189a0fb9ede1649ffea24ea22605a573366170e172ac563dd001c68d65b966ac"
},
{
"path": "research/gaussian-tensor-nine/README.md",
"usage": "input",
"git_blob": "96c9f03626d145bf38a9d4850f0aba4b05c0279c",
"sha256": "a71bc77ba9885e1c5f231ad3b89d01da7860aae53b08ac87b4abca507fec8b82"
},
{
"path": "research/unconditional-batched-crt/HALO.md",
"usage": "input",
"git_blob": "5f601b3c8ac368aa79aa1007effe5933a360237b",
"sha256": "a2adcf18614983e9255def6d3f5e59be0018a392e418d65e94323722838289cc"
}
]
}
74 changes: 74 additions & 0 deletions research/gaussian-slice-five-gate/TASK.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"schema_version": 1,
"task_id": "uniform-transfer-audit",
"priority_revision": 7,
"base_commit": "b58ad9ef4d4e861b0eaa5dba41742bdc072dca51",
"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": "Show that 5 g ceil(log2 p) <= p and p >= max(64, 4K + 2C) put one heavy slice (p^{10})^{g-1} p^6 (1 + p^4) exp(K p - p^2) strictly below 2^{-C p}.",
"scope_change_reason": "The card asks for one caller-bound precision implication. This package only clears that scalar exponent under the factor-5 gate. It does not replace the coefficient-9 monomial gate, does not prove ||H^{-1}||_2 <= p^{10}, and does not claim a new kappa.",
"bottleneck_link": "The selected frontier is unchanged. This is the factor-5 gate left open by the factor-6 copies.",
"budget_minutes": 60,
"stop_rule": "Stop once one heavy slice is below 2^{-C p} under 5 g L <= p. Do not absorb the g copies under this gate, do not lower the factor from 5 to 4, do not change the coefficient-9 monomial gate, do not prove the inverse bound, and do not claim a new kappa.",
"outcome": "completed",
"evidence": "python3.12 -B scripts/research_package.py --package research/gaussian-slice-five-gate",
"author": "James Reed",
"ai_assistance": "Substantial help from Cursor Grok 4.7 on the factor-5 exponent and the package text.",
"open_questions": [
{
"question": "Do the g copies of this slice stay below 2^{-C p} under 5 g ceil(log2 p) <= p?",
"why_it_matters": "The one-slice fifths spend 80 p. Copies add one L, and 8 L <= p turns 40 L into 5 p. The coefficient-9 monomials still use 16.",
"first_step": "Test 20 p^2 - 85 p - 80 at p = 64. Do not change the coefficient-9 monomial gate.",
"blocked_by": "The trailing p^{10} factor and the section error remain hypotheses."
}
]
}
23 changes: 23 additions & 0 deletions research/gaussian-slice-five-gate/VERIFY.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"schema_version": 1,
"status": "ready",
"python": "3.12",
"requirements": [],
"inputs": [
"certificates/selected-result.json",
"research/gaussian-neumann-nine/README.md",
"research/gaussian-tensor-nine/README.md",
"research/unconditional-batched-crt/HALO.md"
],
"commands": [
{
"argv": [
"{python}",
"-B",
"{package}/verify.py"
],
"timeout_seconds": 60,
"checks": "Under 5 g L <= p and p >= 64 the heavy-slice exponent is at most -C p - 1. At p = 70 and g = 2 this gate holds and the factor-6 gate fails. At p = 2 and g = 1 the slice exceeds 1."
}
]
}
99 changes: 99 additions & 0 deletions research/gaussian-slice-five-gate/verify.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
#!/usr/bin/env python3
"""Absorb one heavy slice by the factor-5 gate.

Every comparison is an integer identity. The inverse bound stays a hypothesis.
The coefficient-9 monomial gate stays at 16.
"""

from __future__ import annotations

import hashlib
import json
from pathlib import Path

ROOT = Path(__file__).resolve().parents[2]
PACKAGE = ROOT / "research" / "gaussian-slice-five-gate"


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"]
gate = (ROOT / "research/gaussian-tensor-nine/README.md").read_text(encoding="utf-8")
nine = (ROOT / "research/gaussian-neumann-nine/README.md").read_text(encoding="utf-8")
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 "16 g L ≤ p" in gate
assert "9 < 16" in gate
assert "9 > 8" in gate
assert "8 p^2 < U < 9 p^2." in nine
assert "||P_i-H_i^-1||_2 <= p^10 exp(-p^2)." in halo
assert selected["kappa"] == "60403/20000000"


def fifths() -> None:
# Five times the eighths is 40 (E + C p). The gate enters as 80 * 5 g L.
assert 80 * 5 == 400
assert 5 * 8 == 40
assert 5 * 4 == 20
assert 40 * (2 * 3 + 5) == 20 * (4 * 3 + 2 * 5)
# 20 p^2 - 80 p - 80 is positive at p = 64 and increases by 40 p - 60.
assert 20 * 64 * 64 - 80 * 64 - 80 == 76720
assert 76720 > 0
assert (20 * 65 * 65 - 80 * 65 - 80) - 76720 == 40 * 64 - 60
# Dropping the 1 in 1 + p^4 leaves p^{10 g}.
assert 10 * (2 - 1) + 6 + 4 == 10 * 2
assert 1 + 2**4 < 2 * 2**4


def separates_six() -> None:
# p = 70, g = 2 meets factor 5 and misses factor 6.
assert ceil_log2(70) == 7
assert 5 * 2 * 7 <= 70
assert 6 * 2 * 7 > 70
# The factor-6 line 480 g L <= 80 p fails at this point.
assert 480 * 2 * 7 > 80 * 70
one = 10 * 2 * 7 + 1 - 70 * 70
assert one == -4759
assert one <= -1


def outside() -> None:
# At p = 2 and g = 1 the factor-5 hypothesis fails, and the slice exceeds 1.
assert ceil_log2(2) == 1
assert 5 * 1 * 1 > 2
total = 5040 + 5040 + 2520 + 840 + 210 + 42 + 7
assert total == 13699
assert 3 * 5040 - total == 1421
assert 8 < 1421 * 7
assert 3**4 == 81
assert 2**6 * (1 + 2**4) == 1088
assert 81 < 1088


def main() -> None:
pins_and_phrases()
fifths()
separates_six()
outside()
print("PASS_GAUSSIAN_SLICE_FIVE_GATE")


if __name__ == "__main__":
main()