Skip to content

Independent verification: PR3605's staged 644/660 words pass an exact audit against the PR3133 control (no κ claim) - #3687

Open
thakrarsagar wants to merge 4 commits into
CrocSwap:mainfrom
thakrarsagar:loop44d3/i1-staged644-audit
Open

thakrarsagar wants to merge 4 commits into
CrocSwap:mainfrom
thakrarsagar:loop44d3/i1-staged644-audit

Conversation

@thakrarsagar

Copy link
Copy Markdown
Contributor

Statement

This is an independent exact audit of RossRichardson's #3605 at head 3efbb5de06a49ffeea6684482f2d3fe48cdca3fb. #3605 changes the staged 644/660 words so that helpers 644 and 660 go from width 8 to width 7. The single-change control is dcharb78's unchanged #3133 parent words (51eb9c4e). The changed base and extra words pass for both providers.

  • Identity: each word is an exact free-operator dirty-input identity in both orientations, with 632 independent inputs and 91 private buffers. The buffers are symbolic (dirty) and come back unchanged. Three methods agree: forward evaluation, the contragredient dual, and an independent reverse pull-back that matches the forward 723x723 matrix entry for entry.
  • Cleanup: it equals the independently derived literal inverse.
  • Frames: the chronological binary frames give the local profile {1:2433,2:724,3:228,4:102,5:20,8:8} -> {1:2439,2:726,3:224,4:102,5:20,8:8} and helper widths 8:99 -> 97 and 7:50 -> 52. The research(rank7-coupled-586-588-carrier-fold): lower helpers 586 & 588 via coupled B+restore carrier folds (κ = 0.0017297760894) #3133 parent control reproduces exactly, and its digest matches staged_pair.py's source_canonical_sha256.
  • Second method: rebuilding each word from PROOF.md's prose alone gives the shipped word. P_new = P_old S1 S2 holds on every register. The two target tables and the per-register invoice are exact.
  • Root, on the published histograms only: the PR3605 bracket [0.001730006549538841847005, …006] and the PR3148 bracket [0.0017297774946785970118869, …870] are confirmed by exact rational intervals. The delta is +2.29054860244835118950648e-7 to …650e-7. PR3605's idle histogram is recounted from its aggregate owner witness, with the witness's windows taken as published.

This is a finite exact audit of one local supplier change. It makes no κ claim and no frontier change, and it admits none of the PRs named below. The selected record stays 0.001672660197076918.

Milestone and decision informed

The milestone is the audit card independent-moment (priority revision 6). It is the revision-6 lead "independently reconstruct ONE shared group vs a single-change control", applied to the live descendant (PR2979 -> PR3133 -> PR3605) of #2979's joint construction.

Decision: can #3605's words be admitted as an independently checked input toward the open staged-width κ>0.00173 claims?

Base, pins and reproduction

Base 20ecf2891d80b5acf18d980b2164fb44ea7faa90 (main is unchanged at submission). All inputs are pinned in SOURCES.json by git blob and sha256:

  • the six snapshot inputs are byte-identical to 3efbb5de;
  • the parent words and the PR3148 CLAIM come from main;
  • the read-only references are pinned at their commits, including check_residual.py, owners/verify_aggregate.py, audit_local.py and Arham Tahir's verify.py.

Every audited PR head was re-checked just before this PR was opened.

python3 -I -B research/staged-644-660-independent-audit/verify.py && python3 -I -B research/staged-644-660-independent-audit/root.py

Expected output: two lines CHECKED base|extra parent control, changed word, second method, 19 mutants, then PASS_INDEPENDENT_STAGED_644_660_WORD_AUDIT, then PASS_EXACT_MOMENT_BRACKETS. Both scripts compare their output byte for byte with the committed RESULT.json and ROOT-RESULT.json. The run uses the standard library only and takes about 1–2 min. It also passes under -O.

scripts/research_package.py --check-only passes (PASS_PACKAGE_METADATA_AND_PINS). scripts/check_research_commit.py --check-source-history passes (PASS_RESEARCH_COMMIT_BYTES, 19 files). The generic runner was not run because Python 3.12 is not installed locally (only 3.14.4).

Certificates and negative controls

There are 19 required-outcome mutants per provider, and every one behaves as predicted:

  • Omitting any of the four releases fails the identity at targets 135,162 / 135,220 / 141,196 / 141,171. Flipping a release sign also fails.
  • Adding the releases while keeping the raw writes fails frame containment at B184.
  • Applying only the entrance change fails containment at B184. Placing the releases at frame [30] fails containment at the first release.
  • Using the parent cleanup fails the identity at donors 496,520,640,656. Removing one 644 cleanup gate fails it at 19 helper registers.
  • Keeping the old [30] entrance keeps the identity, but the profile becomes the changed profile + 2 rank-1 children, and rank mass and widths return to the parent's. So the whole width saving comes from the span(429,30) entrance frame.
  • The restore-210 edit is bill-neutral. The 644-only and 660-only edits are separable, at +3 rank-1 +1 rank-2 −2 rank-3 each.

On the root side, six aggregate-witness controls are rejected, each for its asserted reason. The checks include the coverage law 72W+64N = 48,165,120 for both histograms and the per-call constant 1,856 for both words, which forces owner capacity 54W = 35,804,160 (the witness's). They also include the exact thresholds: a mass-conserving error can cancel the gain over PR3148 only by moving more than 4,678 units of rank mass, and take the root below 0.00173 only above 133 units.

The optional contract-fidelity crosscheck imports the inherited auditor, so it is not independent evidence. Its verdicts agree 200/200 with the inherited interpreter on random mutants.

Scope, assumptions and unresolved obligations

Inherited assumptions:

  • The BORROW-WORD and binary-frame contract is as defined by the pinned inherited format. It was re-implemented, not derived.
  • Warps are free invertible symbols.
  • The moment model M(b) is taken from PR3605's DERIVATION.md.
  • The coverage law 72W+64N (PR1012 deficit form) is cited, not re-derived.
  • The published histograms and witness windows are taken as published.

Unrun, and load-bearing:

  1. The native Gaussian phases of the span(429,30) entrance residual. Every consumer shares this obligation, and the whole width saving rests on it.
  2. The RETIMED and DELAYED words of Improve conditional T530 κ through two commuting release retimings #3642/Compose retimed T488 suppliers: conditional kappa 0.00173041889976 #3653/Consume retimed staged releases with smaller T360 stock #3682.
  3. Each consumer's own owner journal, plus PR3605's 333 T740 source windows and its literal journal of 2,717,280 helper roles. PR3605 and PR3148 differ by 97,186 moved units of rank mass, 30,586 of them from idle/owner repacking. That is 6.5 times the cancellation threshold, so window and journal legality matter.
  4. The full fresh-bootstrap wrapper replay asked for in Handoffs and requests for independent checks #1166. Replay the complete PR3605 wrapper with a fresh retained bootstrap #3681 runs it with the inherited code, so it is not independent, and it is not reviewed here.
  5. H1–H5, the physical/prefix/outer release, precision, and the formal kernel.

The README's Open next questions lists these with first steps.

Search record

This was an audit, not a search. It used a fixed list of 19 mutants per provider. The crosscheck used random mutants with seeds 3605 (40 mutants) and 44 (60 mutants).

Credit, concurrent work and what this adds

Concurrent work, none of which re-implements the word semantics:

What this PR adds is the independent word semantics, the PR3148 delta attribution, the aggregate-witness recount and the error-class sensitivity analysis.

Claim: #3606 (comment). The CLAIM misattributed the predecessor audit to Petalas; its author is Arham Tahir.

Review provenance

Reviewed by ten independent AI review passes over three rounds in the same loop (four in round 1, three in each of rounds 2 and 3). The passes covered reproducibility and controls, mathematics and accounting, provenance, and a referee lens. No human or formal-kernel review is claimed.

Attribution

Sagar Thakrar (@thakrarsagar), with substantial AI assistance from Claude (Anthropic, Claude Opus 5.5) via Claude Code, in an automated research loop. Apache-2.0.

🤖 Generated with Claude Code

thakrarsagar and others added 4 commits October 18, 2026 18:43
New stdlib package research/staged-644-660-independent-audit checks
PR3605 head 3efbb5d against the unchanged PR3133 parent words
(single-change control) and the PR3148 root:

- free-operator dirty-input identity in both orientations, by forward
  values with symbolic private buffers and by reverse pull-back;
  literal inverse cleanup; 632 inputs, 91 buffers, both providers
- binary-frame chronology: profile {1:2433,2:724,3:228} ->
  {1:2439,2:726,3:224}, widths 8:99->97, 7:50->52
- PROOF.md prose reconstruction, P_new = P_old S1 S2 on all registers,
  target tables and per-register invoice; 19 mutants per provider
- exact root brackets of both published histograms confirmed; the
  +2.29e-7 gain is smaller than one rank-48 idle child (3.5e-7); the
  idle histogram I is recounted from the published aggregate witness
- optional crosscheck against the inherited interpreter: 200/200
  agreeing verdicts on random mutants (not part of the replay)

No kappa claim and no frontier change. Native phases, owner windows,
the literal owner journal and the full wrapper replay are not checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Split the root sensitivity into mass-changing errors (group capacities,
bin counts, widths: one rank-48 idle child moves the root by 3.498e-7,
more than the gain) and mass-conserving placement errors at fixed groups
and widths (exact intervals: at least 98 rank-48 -> 48 x rank-1
relabels, i.e. more than 4,656 units of idle mass, are needed to cancel
the gain over PR3148; 3 to drop below 0.00173).

Reimplement the remaining verify_aggregate.py legality checks in root.py
(types/ranges, duplicates, per-copy group capacity, inventory and profile
fields) with two more rejecting controls. Name CrocSwap#3642/CrocSwap#3653 as consumers
whose RETIMED644-660 words are not covered, reorder open questions, and
note concurrent CrocSwap#3659. Credit Arham Tahir's coupled-carrier audit as the
structural model of audit_core.py, label the lifted-Lagrangian check as
implied by the frame map, and pin check_residual.py, verify_aggregate.py,
audit_local.py and Arham Tahir's verify.py in SOURCES.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reframe root-gain sensitivity around the coverage law 72W+64N: with the
audited per-call constant 1,856 it forces owner capacity 54W, so
mass-changing errors cannot pass undetected and the single-child shifts
are only slopes. root.py now certifies the direct mass-conserving
thresholds (4,678 units vs PR3148, 133 vs 0.00173) and checks them
against the relabel counts; adds the complete-paid-rank-mass witness
check; asserts each aggregate control's rejection reason and adds a
parent-widths control that reaches the per-call demand check. README and
TASK fix consumer allocation names, CrocSwap#3653 draft state, and mention
CrocSwap#3681/CrocSwap#3677.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Text-only fixes: the 4,678-unit threshold bounds cancelling the gain, not
its size; name CrocSwap#3682's DELAYED words as a parent-only consumer; split the
97,186 moved units into 66,600 per-call and 30,586 idle repacking; list the
coverage law as an inherited assumption; drop the bolded hybrid-residual
sentence; weaken the domination hypothesis to published ranks <= 48 and true
ranks >= 1 (root.py comment only); disambiguate bin counts; compress the
fragility section; put the reproduce command up front.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant