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
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,7 @@ Rohan Arun receives explicit mechanism credit for #987’s slot search and first
- **Cinna Davis / 1337isnot1337:** [#1090](https://github.com/CrocSwap/integer-mult-bounds/pull/1090).
- **David Breslauer / davidNbreslauer:** [#1072](https://github.com/CrocSwap/integer-mult-bounds/pull/1072).
- **thakrarsagar / thakrarsagar:** [#1049](https://github.com/CrocSwap/integer-mult-bounds/pull/1049), [#1051](https://github.com/CrocSwap/integer-mult-bounds/pull/1051), [#1069](https://github.com/CrocSwap/integer-mult-bounds/pull/1069), [#1059](https://github.com/CrocSwap/integer-mult-bounds/pull/1059), [#1023](https://github.com/CrocSwap/integer-mult-bounds/pull/1023), [#1045](https://github.com/CrocSwap/integer-mult-bounds/pull/1045), [#1062](https://github.com/CrocSwap/integer-mult-bounds/pull/1062).
- **Aaron Wang / navinor:** [#1015](https://github.com/CrocSwap/integer-mult-bounds/pull/1015) (open; own package pending review). Its nine phase-B multi-write block programs are retained verbatim in #1062 (`research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json`) and supply 244 of #1062's 283 saved ADDs; see the [retention receipt](research/r439-pr1015-retention-seed95/README.md).
- **steph4n / steph4n-gh:** [#1052](https://github.com/CrocSwap/integer-mult-bounds/pull/1052).
- **Josie Elliston / JosieElliston:** [#1091](https://github.com/CrocSwap/integer-mult-bounds/pull/1091).
- **flemhhh / flemhhh:** [#1048](https://github.com/CrocSwap/integer-mult-bounds/pull/1048) (reviewed; corrections pending).
Expand Down
14 changes: 14 additions & 0 deletions research/r439-pr1015-retention-seed95/NOTICE-PR1015.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Notice

R439 phase-B multi-write block programs, 2026.

Built on the PR555/PR589 R439 supplier and its retained notices (eumemic,
DreamingOfClouds, Dylan Crow, Zhihao Chen and predecessors). The verifier
uses the repository's pinned owning interface checker and record exporter.
Block-level comparison credit: PR #891 (Aaron Wang), PR #880 (Krishnendu
Purohit), PR #884 (martin Rv), PRs #857/#873/#906/#908/#914/#923 and the
prefix-resynthesis line #904/#936/#952; none of their implementations or
savings is imported.

Prepared with help from opencode. New files are offered under the
repository's Apache-2.0 license. No independent human review is claimed.
62 changes: 62 additions & 0 deletions research/r439-pr1015-retention-seed95/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Retention receipt: #1015's block programs in main through #1062

**Research consolidation (credit and provenance). No new κ; no ledger, disposition or construction change.**

Main `c0e3631d` retains open PR #1015's work verbatim, but no ledger row, credit line or retained notice says so.
This receipt records the fact with hashes and adds the missing credit. It corrects an omission in my own #1062,
which copied the file.

| fact | evidence |
|---|---|
| retained file | `research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json` (merged with #1062) has git blob `16532f2d`, identical to `research/r439-bsection-multwrite/CANDIDATE.json` at #1015's open head `7588c797` |
| what it contributes | 9 of the 10 phase-B block programs spliced into #1062's word |
| share of #1062's saving | 11,783 → 11,500 ADDs: **PR1015 244**, PR923 24, rerun star pass 15 (recomputed from #1062's `CERTIFICATE.json`; each gate saved counts twice, block plus literal cleanup) |
| ledger | `docs/research/pr-ledger.json` has a #1062 row whose scope names "nine PR1015 blocks", and no #1015 row |
| credit | `CONTRIBUTORS.md` credited #1062 and had no #1015 entry |
| notice | #1062's package has no NOTICE. #1015's `NOTICE.md` (blob `727d5b58`: Apache-2.0 offer, AI disclosure "Prepared with help from opencode", predecessor credits) was not retained beside the copied file. #1062's README and SOURCES.json do credit and pin #1015. |

## Change

- Adds `NOTICE-PR1015.md`, #1015's `NOTICE.md` byte for byte (blob `727d5b58`), so the license offer and AI
disclosure accompany the retained file in main.
- Adds one `CONTRIBUTORS.md` line in the batch #1099 section, crediting Aaron Wang / navinor for #1015's retained
programs. This follows the precedent of #946, "credited as pending integration".
- Does not edit `pr-ledger.*`, any batch disposition, the #1062 package or the selected record. #1015 stays open for
its own review. Whether the ledger records it as "partially retained via #1062" is a maintainer decision.

```sh
python3 -I -B research/r439-pr1015-retention-seed95/verify.py
```

Expected (read-only, no network, standard library only):

```text
base ledger: #1015 row absent (gap recorded)
PASS_R439_PR1015_RETENTION blob=16532f2d saving=PR1015:244+PR923:24+star15=283 controls=2
```

The script recomputes both blob ids and the per-source split, and checks the credit line. It asserts the missing
ledger row only while the ledger is still the base blob; after a maintainer update it reports the new state
instead. Two negative controls must fail: a block misattributed to PR923, and a one-byte change to the retained
file.

## Reviewer notes for related open PRs

These were observed read-only at the stated heads and are not checked by `verify.py`.

- **#1122** (`a2551e70`, compose R439 A/B/star D to 10,652 ADDs) is a strict superset of merged #1062 plus merged
#980's A part. Its `vendor/pr1062` files are byte-identical to main's merged files, so its "pending PR1062"
wording is now stale. Its 848-not-872 accounting for #980 is forced: #980's B edits fall in frames 507–509 and
519–523, inside the ten blocks #1062 replaces.
- **#1127** (`2e9dc9d3`, 3→2 z-program rewrites) is not additive to #1062 or #1122 as packaged. All 330 of its A
moves fall in frames already rewritten by PR904–980, and all 75 of its B moves fall inside the ten replaced blocks.

## Provenance

Selected by a consolidation-track task card (`overlap-receipt`) from `scripts/choose_research_task.py --track
consolidation`. The track came from OS-random seed 95 under the user's sprint assignment. Base `c0e3631d`;
heads observed on 2026-10-14. Five explorer subagents evaluated alternative consolidation scopes and three judges
scored them. The scope was then narrowed to this credit gap, which is new and hash-checkable.

`NOTICE-PR1015.md` is Aaron Wang's text, retained under the repository's Apache-2.0 license. Everything else here was
prepared by Sagar Thakrar with substantial assistance from Anthropic Claude (Claude Code). Apache-2.0.
67 changes: 67 additions & 0 deletions research/r439-pr1015-retention-seed95/RECEIPT.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"status": "PR1015_RETAINED_VIA_PR1062_RECEIPT_NO_NEW_KAPPA",
"base_commit": "c0e3631dc24e3c24a861f7d3d79e0608481cccec",
"observed_on": "2026-10-14",
"pr1015": {
"state": "OPEN",
"head": "7588c797f4a4e9f2b9fc663cfa6e35afcac05e06",
"author": "navinor (Aaron Wang)",
"package": "research/r439-bsection-multwrite/"
},
"pr1062": {
"state": "MERGED",
"reviewed_head": "cd016e5dcd5ba28dafa3f3b4eeef003a38e6a11b",
"package": "research/r439-bsection-stars-seed01/",
"integrated_by": "0a31ad88 (batch1099 checkpoint 1)"
},
"retained_file": {
"path": "research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json",
"pr1015_head_path": "research/r439-bsection-multwrite/CANDIDATE.json",
"pr1015_head_blob": "16532f2d8d4fb16fde803cecf32e3ce11369ea56",
"sha256": "388c2a0db00dbe77b67649af7293e577cf3869da7ae0d0341e17ecff2b16c84c"
},
"pr1062_saving": {
"per_source": {
"PR1015": 244,
"PR923": 24
},
"star_rerun": 15,
"total": 283,
"words": {
"helper_star": 11783,
"composition": 11515,
"candidate": 11500
},
"rule": "2 x (original_gates - new_gates) per spliced block (block plus literal cleanup); star rerun = composition - candidate"
},
"pr1015_notice": {
"path": "research/r439-bsection-multwrite/NOTICE.md",
"blob": "727d5b586299ff1615b749f9f273c823b26e711d",
"retained_here_as": "NOTICE-PR1015.md",
"content": "Apache-2.0 offer of new files; AI disclosure 'Prepared with help from opencode'; predecessor credits"
},
"gaps_before_this_change": {
"pr_ledger": "docs/research/pr-ledger.json pull_requests has a #1062 row (scope names 'nine PR1015 blocks') and no #1015 row (blob 4b08a8e6 at base)",
"contributors": "CONTRIBUTORS.md (blob b2467e85 at base) credits #1062 under thakrarsagar in the batch #1099 section and has no #1015 entry",
"notice": "research/r439-bsection-stars-seed01/ has no NOTICE or LICENSE and does not carry #1015's NOTICE.md; its README and SOURCES.json do credit and pin #1015",
"batch1099": "#1015 appears in research/community-batch1099-audit only as an open queue entry; CONTENT-COVERAGE.json lists the copied file as retained without linking #1015"
},
"change": {
"added": "research/r439-pr1015-retention-seed95/ (README.md, RECEIPT.json, NOTICE-PR1015.md, verify.py)",
"contributors_md": "one credit line in the batch #1099 section, following the #946 'credited as pending integration' precedent"
},
"contributors_line": "- **Aaron Wang / navinor:** [#1015](https://github.com/CrocSwap/integer-mult-bounds/pull/1015) (open; own package pending review). Its nine phase-B multi-write block programs are retained verbatim in #1062 (`research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json`) and supply 244 of #1062's 283 saved ADDs; see the [retention receipt](research/r439-pr1015-retention-seed95/README.md).",
"reviewer_notes_not_checked_by_verify": {
"pr1122": {
"head": "a2551e70fce0cc34348f50f1a94e7cc4c80bbcbf",
"note": "Composes merged #1062 (B 800, D 5548) with merged #980's A part (A 1706): corner 7 = 10,652 ADDs. Its vendor/pr1062 files are byte-identical to main's merged #1062 files, so its 'pending PR1062' wording is stale. Its 848-not-872 accounting for #980 is forced: #980's B edits fall in frames 507-509 and 519-523, inside the ten blocks #1062 replaces."
},
"pr1127": {
"head": "2e9dc9d3356a6b7258ed869ddcee46352907f746",
"note": "Its 405 moves are not additive to #1062/#1122 as packaged: 330/330 A moves fall in frames already rewritten by PR904-980 and 75/75 B moves fall inside the ten blocks #1062 replaces."
}
},
"not_done": "No ledger, disposition or batch-record edits; no change to the #1062 package; #1015 stays open for its own review; no closures; no kappa change (the selected #1094 uses the PR589 bit word and the bit side does not bind).",
"ledger_blob_at_base": "4b08a8e68cb73f693732cd74363c7974dfd38607",
"contributors_blob_at_base": "b2467e856c543881ce5b2315bc7897329f9ec2fb"
}
90 changes: 90 additions & 0 deletions research/r439-pr1015-retention-seed95/verify.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: Apache-2.0
# Prepared by Sagar Thakrar with substantial Anthropic Claude assistance.
"""Read-only check of the #1015 retention receipt against files in this checkout (no network).

1. main's research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json has the git blob id of
research/r439-bsection-multwrite/CANDIDATE.json at open #1015's head 7588c797 (pinned below);
2. NOTICE-PR1015.md here is #1015's NOTICE.md at that head, byte for byte (pinned blob id);
3. #1062's saving splits as PR1015 244 + PR923 24 + rerun star pass 15 = 283 ADDs, recomputed from
research/r439-bsection-stars-seed01/CERTIFICATE.json (gate deltas count twice: block plus literal cleanup);
4. CONTRIBUTORS.md carries the #1015 credit line added with this receipt; the ledger's missing #1015 row is asserted
only while docs/research/pr-ledger.json is still the base blob, and otherwise reported.
Two negative controls must fail: a block misattributed to PR923, and a one-byte change to the retained file.
"""
import copy
import hashlib
import json
import sys
from pathlib import Path

HERE = Path(__file__).resolve().parent
ROOT = HERE.parents[1]
RECEIPT = json.loads((HERE / 'RECEIPT.json').read_text())


def need(ok, msg):
if not ok:
raise SystemExit('FAIL ' + msg)


def blob(data):
return hashlib.sha1(b'blob %d\0' % len(data) + data).hexdigest()


def attribution(cert):
per = {}
for b in cert['blocks']:
per[b['source']] = per.get(b['source'], 0) + 2 * (b['original_gates'] - b['new_gates'])
words = {k: v['literal']['native_ADDs'] for k, v in cert['words'].items()}
return dict(per_source=per, star_rerun=words['composition'] - words['candidate'],
total=words['helper_star'] - words['candidate'], words=words)


def check(cert, retained, notice):
r = RECEIPT
need(blob(retained) == r['retained_file']['pr1015_head_blob'], 'retained file is not #1015 CANDIDATE.json at its head')
need(blob(notice) == r['pr1015_notice']['blob'], 'NOTICE-PR1015.md differs from #1015 NOTICE.md')
a = attribution(cert)
want = r['pr1062_saving']
need(a['per_source'] == want['per_source'] and a['star_rerun'] == want['star_rerun'] and a['total'] == want['total'],
'saving attribution %s' % a)
need(sum(a['per_source'].values()) + a['star_rerun'] == a['total'], 'saving does not add up')
return a


def main():
cert = json.loads((ROOT / 'research/r439-bsection-stars-seed01/CERTIFICATE.json').read_text())
retained = (ROOT / RECEIPT['retained_file']['path']).read_bytes()
notice = (HERE / 'NOTICE-PR1015.md').read_bytes()
a = check(cert, retained, notice)
raw = (ROOT / 'docs/research/pr-ledger.json').read_bytes()
numbers = {row['number'] for row in json.loads(raw)['pull_requests']}
need(1062 in numbers, 'ledger row for #1062')
if blob(raw) == RECEIPT['ledger_blob_at_base']: # the recorded gap holds only for the base ledger
need(1015 not in numbers, 'base ledger unexpectedly has a #1015 row')
ledger = 'base ledger: #1015 row absent (gap recorded)'
else:
ledger = 'ledger changed since base: #1015 row %s' % ('present' if 1015 in numbers else 'still absent')
contributors = (ROOT / 'CONTRIBUTORS.md').read_text()
need(RECEIPT['contributors_line'] in contributors, 'CONTRIBUTORS.md lacks the #1015 credit line')
controls = []
bad = copy.deepcopy(cert)
next(b for b in bad['blocks'] if b['source'] == 'PR1015')['source'] = 'PR923'
try:
check(bad, retained, notice)
except SystemExit:
controls.append('misattributed block rejected')
try:
check(cert, retained[:-1] + bytes([retained[-1] ^ 1]), notice)
except SystemExit:
controls.append('modified retained file rejected')
need(len(controls) == 2, 'negative controls: %s' % controls)
print(ledger)
print('PASS_R439_PR1015_RETENTION blob=%s saving=PR1015:%d+PR923:%d+star%d=%d controls=%d' % (
RECEIPT['retained_file']['pr1015_head_blob'][:8], a['per_source']['PR1015'], a['per_source']['PR923'],
a['star_rerun'], a['total'], len(controls)))


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