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
141 changes: 141 additions & 0 deletions research/gaussian-tensor-faces/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# The face factor 2 spends one bit of slack

**Claim type:** an explicit absorption bound for one constant factor.
**No new κ.** The section ceiling `10 p^2` and the section error
`p^6 exp(-p^2)` stay hypotheses. The selected record remains `23/10000`.

## Question

#4486 absorbs

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

under the gate `p ≥ max(64, 4K + 2C)` and `16 g ceil(log2 p) ≤ p`, with
exponent at most `-C p - 4`. HALO partitions boundary outputs into `2g`
rectangles, and a review note asks for a factor `2g` on the core error.
Does that extra factor of 2 stay below `2^{-C p}` under the same gate?

## 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
2 g (10 p^2 + p^6 exp(-p^2))^{g-1} p^6 exp(K p - p^2) < 2^{-C p}.
```

The case `K = 0` is the monomial in the question. The factor 2 contributes
one bit. The exponent is at most `-C p - 3`. Whenever `g log p = o(p)`,
every fixed pair `K, C` satisfies the gate for all large `p`.

This comparison does not identify HALO's `2g` rectangles with the tensor
error. It charges the constant 2 against slack that is already present.
At `g = p^2` the same 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) ≤ 2^{2 K p}`, with
equality only at `K = 0`.

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. From `8 L ≤ p`, `48 L = 6 · 8 L ≤ 6 p`.
The quadratic `4 p^2 - 3 p - 4` equals 6 at `p = 2` and increases by `8 p + 1`
at the next integer, so `6 p ≤ 8(p^2 - 1)`. Hence `6 L ≤ p^2 - 1`. Since
`p ≤ 2^L`, `p^6 ≤ 2^{6 L} ≤ 2^{p^2 - 1}`, and

```text
p^6 exp(-p^2) < p^6 2^{-p^2} ≤ 1/2.
```

Thus `10 p^2 + p^6 exp(-p^2) < 10 p^2 + 1 < 16 p^2`, because `1 < 6 p^2`
for every integer `p ≥ 2`. At `g = 1` the power `g - 1` is zero. For
`g ≥ 2` the approximant base is strictly smaller than `16 p^2`, so

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

The gate forces `g ≤ p ≤ 2^L`, and `L ≥ 1`. Since `2 = 2^1`, the product is
strictly less than

```text
2^{1 + 2 g L + 4 g + 5 L - 4 + 2 K p - p^2}.
```

Clear the eighths. The four pieces scale as `8 · 2 g L = 16 g L ≤ p`,
`8 · 4 g = 2 · 16 g ≤ 2 p`, `8 · 5 L = 5 · 8 L ≤ 5 p`, and
`8 (2 K + C) p ≤ 4 p^2` once `p ≥ 4 K + 2 C`, because
`8 (2 K + C) = 4 (4 K + 2 C)`. The coefficients of `p` are `1 + 2 + 5 = 8`.
Doubling the exponent without the new bit, plus `C p`, leaves at most
`-(p^2 - 2 p + 8)`. That polynomial equals 8 at `p = 2` and increases by
`2 p - 1`, so the doubled quantity is at most `-8`. The exponent without
the face factor is at most `-C p - 4`. One bit lowers the remaining slack
from 4 to 3, and the exponent above is at most `-C p - 3`.

If `g log p = o(p)`, then `g log2 p ≤ p/32` for large `p`. For `p ≥ 3`,
`L ≤ 2 log2 p`, so the gate holds eventually, and every fixed `K` and `C`
satisfy `p ≥ 4 K + 2 C` as well.

At `g = p^2` the product is twice a quantity larger than
`g (10 p^2)^{g-1} p^6 exp(-p^2)`. The smaller monomial equals
`g (10 p^2)^g exp(-p^2) · p^4 / 10`, and
`(10 p^2)^{p^2} > 4^{p^2} > exp(p^2)` because `10 p^2 ≥ 40 > 4` and `e < 4`,
while `p^6 / 10 > 1` because `p^6 ≥ 64 > 10`. That product is greater than 1,
so the face-factor monomial is greater than 1 as well.

## Not covered

- A proof that the tensor difference is at most this monomial.
- A proof that a section inverse is at most `10 p^2`, or that a section
error is less than `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-faces --check-only
python3.12 -B scripts/research_package.py --package research/gaussian-tensor-faces
```

Base `2a13eb1827784206202db90e5dc8327cf8a250db`, priority revision 7, selection
refresh κ = `23/10000`.

Overlap on 2026-10-22 (open PRs fetched 2026-10-22T01:16:25Z, 340 records;
discussions fetched 2026-10-22T01:17:10Z, 3365 records) names this draft, #4486
(the approximant budget, which leaves the factor 2 open), #4484 and #4485,
discussion comment 19078965, and the locality audit. That audit already says a
factor 2 on `g p^{10 g} exp(-p^2)` is absorbed by `2^{-C p}`. It does not
give this gate or the slack 3 for the approximant base. A broad search for
`2g` also hits unrelated `D(2G)` claims. A search miss is not a novelty
certificate. #4486 is the predecessor budget. HALO is the error sentence.

## Open next questions

1. **Is the tensor difference at most this monomial?** Another constant in
front of the same product is not the missing step. The first step is to
expand one axis of the tensor product and bound that slice by one section
error.

## Credit

- The tensor sentence, the `2g` rectangles, and the gate `g log p = o(p)` are #4100's.
- The ceiling `10 p^2` is Ryanson Jonathan's #4462, as carried through #4481.
- The section error `p^6 exp(-p^2)` is the within-cell bound of #4452.
- The approximant budget is #4486. This package spends one bit of its slack.

Prepared by James Reed with substantial Cursor Grok 4.7 assistance. Apache-2.0.
24 changes: 24 additions & 0 deletions research/gaussian-tensor-faces/SOURCES.json
Original file line number Diff line number Diff line change
@@ -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"
}
]
}
74 changes: 74 additions & 0 deletions research/gaussian-tensor-faces/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": "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 2g (10 p^2 + p^6 exp(-p^2))^{g-1} p^6 exp(-p^2), times a global factor exp(K p), still falls below 2^{-C p} under the same gate as the approximant fold.",
"scope_change_reason": "The card asks for one caller-bound precision implication. This package only charges the extra factor 2 against the existing exponent slack. It does not identify the tensor difference with this monomial, and it does not claim a new kappa.",
"bottleneck_link": "The selected frontier is unchanged. This is the face factor left open by the approximant absorption.",
"budget_minutes": 60,
"stop_rule": "Stop once the factor 2 is compared with the exponent slack. Do not expand a tensor axis, 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-faces",
"author": "James Reed",
"ai_assistance": "Substantial help from Cursor Grok 4.7 on the absorption bound and the package text.",
"open_questions": [
{
"question": "Is the tensor difference at most 2g (10 p^2 + p^6 exp(-p^2))^{g-1} p^6 exp(-p^2)?",
"why_it_matters": "The absorption bounds the monomial. It does not show that the core tensor error is that monomial.",
"first_step": "Expand one axis of the tensor product and bound that slice by one section error.",
"blocked_by": "A section inverse at most 10 p^2 and a section error below p^6 exp(-p^2) remain conditional on the ideal gaps."
}
]
}
21 changes: 21 additions & 0 deletions research/gaussian-tensor-faces/VERIFY.json
Original file line number Diff line number Diff line change
@@ -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 ceil(log2 p) <= p, 2g (10 p^2 + p^6 exp(-p^2))^{g-1} p^6 exp(Kp - p^2) is below 2^{-C p} with exponent slack 3; g = p^2 leaves that error above 1."
}
]
}
126 changes: 126 additions & 0 deletions research/gaussian-tensor-faces/verify.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#!/usr/bin/env python3
"""The face factor 2 spends one bit of the telescoping slack.

Every comparison is an integer identity. The section ceiling and the section
error are hypotheses.
"""

from __future__ import annotations

import hashlib
import json
from pathlib import Path

ROOT = Path(__file__).resolve().parents[2]
PACKAGE = ROOT / "research" / "gaussian-tensor-faces"


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 "These 2g sets are disjoint rectangles." 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
# 10 p^2 + 1 < 16 p^2. The face factor is the next power of two.
assert 6 * 4 > 1
assert 10 < 16
assert 2 ** 4 == 16
assert 2 ** 1 == 2
assert 4 - 1 == 3
assert 4 * 1 - 4 == 0


def section_error_room() -> None:
# 8 L <= p implies 48 L <= 6 p, and 6 p <= 8(p^2 - 1) for every integer p >= 2.
assert 6 * 8 == 48
assert 8 * (2 ** 2 - 1) - 6 * 2 == 2 * (4 * 2 ** 2 - 3 * 2 - 4)
assert 4 * 2 ** 2 - 3 * 2 - 4 == 6
assert (4 * 3 ** 2 - 3 * 3 - 4) - (4 * 2 ** 2 - 3 * 2 - 4) == 8 * 2 + 1
assert ceil_log2(128) == 7
assert 6 * 7 <= 128 ** 2 - 1
assert 2 * (2 ** 3) == 2 ** 4


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(2) == 1
assert ceil_log2(64) == 6
assert ceil_log2(65) == 7
assert ceil_log2(128) == 7
assert 8 * ceil_log2(128) <= 128


def budget() -> None:
assert 8 * 2 == 16
assert 8 * 4 == 2 * 16
assert 8 * 5 == 5 * 8
assert 1 + 2 + 5 == 8
assert 4 * (4 * 3 + 2 * 5) == 8 * (2 * 3 + 5)
assert 2 ** 2 - 2 * 2 + 8 == 8
assert (3 ** 2 - 2 * 3 + 8) - (2 ** 2 - 2 * 2 + 8) == 2 * 2 - 1
assert 8 >= 2
# The doubled slack 8 is four bits; one bit remains three.
assert 8 // 2 - 1 == 3
prime = 128
level = ceil_log2(prime)
groups = 1
assert 16 * groups * level <= prime
slack = (
1
+ 2 * groups * level
+ 4 * groups
+ 5 * level
- 4
- prime * prime
)
assert slack <= -3
# g = p^2 still leaves the smaller inverse-ceiling monomial above 1.
assert 10 * 4 > 4
assert 2 ** 6 > 10


def main() -> None:
pins_and_phrases()
series_bounds()
section_error_room()
log_induction()
budget()
print("PASS_GAUSSIAN_TENSOR_FACES")


if __name__ == "__main__":
main()
Loading