Skip to content

Conditional κ = 7.696840393833340e-4: a stronger p = 10 bit word — re-annealed pair module, p = 10 local design, balanced cube orientation, tiered reuse matching (+0.71% over #315's word) - #325

Closed
DreamingOfClouds wants to merge 2 commits into
CrocSwap:mainfrom
DreamingOfClouds:research/p10b-five-stage-banks
Closed

DreamingOfClouds wants to merge 2 commits into
CrocSwap:mainfrom
DreamingOfClouds:research/p10b-five-stage-banks

Conversation

@DreamingOfClouds

@DreamingOfClouds DreamingOfClouds commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

κ = 384842019691667/(5·10¹⁷) = 7.696840393833340e-4, conditional. The bit supplier binds.

compared with κ gain
#323, the highest open claim when I wrote this (18:20 UTC Oct 10) 7.69557449978832e-4 +0.0164%
#315, the base of this package 7.64230861320245e-4 +0.7136%
#285 (gen5 five-stage package, p = 12) 7.42785663120535e-4 +3.621%

The open frontier (#316, #317, #319–#323) stacks transcript stages, kernels and retimings on #315's p = 10 word.
Against #322 the gain is +0.0165%, against #321 +0.0617%, against #320 +0.0169%, against #319 +0.1857%, against #317 +0.1971%
and against #316 +0.5931%. This package does not stack those stages: it improves the word underneath them.

This package changes nothing after the bit word. Instead it replaces #315's p = 10 bit word with a
re-searched one, keeping #315's package, its checks and its centre-sharing complex supplier (7727/10⁷). Four things
changed:

  1. The pair module is re-annealed with a debt penalty. The objective is the exact compile cost plus λ·debt,
    where the debt counts module additions that do not donate to a carrier arc. Debt 95 → 92, still 273 additions.
  2. The local design is re-searched at p = 10. Conditional κ = 7.64230861320245e-4: the paired-cube bit word at cube size p = 10 (h = 20, m = 100), with a new centre-sharing complex supplier (+1.21% over #314) #315 reused the p = 12 design. Now a cube takes 24 local
    additions instead of 27.
  3. The cube orientation is balanced. Every coordinate is position 0 in exactly 12 cubes; sorted cubes gave 36
    cubes to coordinate 0 and none to coordinate 9. This lets all 960 rank-17 gauges become reuse recipients;
    Conditional κ = 7.64230861320245e-4: the paired-cube bit word at cube size p = 10 (h = 20, m = 100), with a new centre-sharing complex supplier (+1.21% over #314) #315 matched 892.
  4. The reuse matching is tiered. Donors are admitted by decreasing end-frame dimension, and the result is
    still a maximum matching. All 960 pairs are matched (Conditional κ = 7.64230861320245e-4: the paired-cube bit word at cube size p = 10 (h = 20, m = 100), with a new centre-sharing complex supplier (+1.21% over #314) #315: 890), and none is dropped for bank divisibility.

The certified bit root rises from 7.64815357e-4 to 7.70276910e-4. That is still 0.32% below the complex leaf
cap, so the bit binds and κ follows it.

cd research/five-stage-p10b-banks
python3 -m pip install -r requirements.txt          # sympy==1.14.0
python3 -B verify.py --output /tmp/p10b-five-stage-verification     # about 3 minutes, no network

The four changes

1. Pair module (pm_p10.json). I re-annealed #315's module with simulated annealing on the exact one-instance
compile cost, with five-stage weights r·ln(m/r), plus a penalty λ·debt (λ = 150 to 300). Here the debt is
additions minus carrier arcs. The module keeps 36 inputs, the centre root and 273 additions. Its carrier arcs go
from 178 to 181, so its debt goes from 95 to 92. Probes with λ up to 1,000 bottomed out at debt 93 from #315's
module (about 115 from a random start); continued annealing reached 92.

2. Local design (local_design_p10.json). #315 reused, unchanged, a cube-local design found by a pair-aware
search on the p = 12 word. This design comes from 1-move steepest ascent at p = 10, starting from #315's design
and scored on the five-stage virtual price of the full word. It reached a local optimum after two moves, which
changed 2 of the 12 plane recipes. Because subtrees are shared, a cube takes 24 local additions and 8 local
carrier arcs instead of 27 and 11 (local debt 16 both times). On its own, under sorted cubes and Hopcroft–Karp,
this design lost physical reuse pairs in the research runs (884 → 644 with an intermediate module). It pays
only together with changes 3 and 4.

3. Cube orientation (cube_orient_p10.json, new). Position 0 of a cube carries face0, the generator's
4-target root, and the rank-17 reuse recipients are tied to it. Sorted cubes put coordinate 0 at position 0 of
C(9,2) = 36 cubes and coordinate 9 at none. The donors that fit the recipients followed that imbalance, leaving a
Hall deficit of 68: #315's maximum matching had 892 of 960. The new file lists each cube as a cyclic rotation of its
sorted triple whose position 0 follows the largest cyclic gap (mod 10). In the one orbit with gaps 4, 4, 2, position
0 is the element between the two 4-gaps. The rule is rotation-equivariant, so every coordinate is position 0, 1 and
2 in exactly 12 cubes each. Orientation alone left R and the virtual price unchanged in the research runs. The
generator reads the file when present and otherwise uses sorted cubes. It also stores the symmetric plane entries
that an oriented cube looks up; sorted cubes never read them.

4. Tiered reuse matching (make_physical.py). Hopcroft–Karp returns some maximum matching regardless of donor
value. With the balanced orientation it covered all 960 recipients but chose low-dimension donors: the summed
first-order pair value on the shipped word is about 40.2k against 45.1k for the tiered matching (in ledger units). The first-order
five-stage value of a pair grows with the donor's end-frame dimension e. The producer therefore admits donors in
tiers of decreasing e. After each tier it runs Kuhn augmenting paths from the current matching until none is left
among the donors admitted so far.

  • Donors stay matched. An augmenting path never unmatches a matched donor, so this is the greedy algorithm on
    the transversal matroid of donors. For every threshold t, as many donors with e ≥ t are matched as any matching
    allows. Since the first-order value grows with e, this targets that value; it is not an exact optimum of the
    price.
  • Still maximum. The last tier is the full candidate graph, run until no augmenting path remains, so the
    result is a maximum matching (Berge). Here that means all 960.
  • Same pair rules. PR200's rules are unchanged; only the choice among maximum matchings changed.
  • No drops. The residual width 4·1,200 + 20·6,900 = 142,800 is already ≡ 0 (mod 5). --bank-parity drops
    nothing, and the banks tile as pure (4²⁵) and (20⁵) banks.

Where the gain comes from. These are research-pipeline estimates (float, unbanked five-stage price, not
certified), measured against #315's modules and design regenerated through the same pipeline (892 pairs, before
#315's two bank drops):

step reuse pairs unbanked price vs #315's word
#315's word 892 7.584707e-4 —
+ debt-penalised pair module (intermediate) 884 7.615053e-4 +0.400%
+ balanced orientation and tiered matching 960 7.625222e-4 +0.534%
+ p = 10 local design 960 7.640606e-4 +0.737%
+ final pair module (this package) 960 7.641048e-4 +0.743%

The new word

one invocation #315, p = 10, m = 100 this package, p = 10, m = 100
virtual auxiliary roles 9,120 9,060
five-stage virtual price (research float, not certified) 7.4429e-4 7.4944e-4
compensated reuse pairs 890 960
independent dirty registers R 8,230 8,100
formal F₂ columns 2v + R 10,150 10,020
independent entrances (ranks) 1,270 (16, 17) 1,200 (16)
banks per stage 86,526 85,680
normalized stock / deficit 132,606 / 24,480 131,760 / 24,480
bit coarse saving (certified root) 7.64815357146385e-4 7.70276909563042e-4
complex coarse saving 7.72714351296671e-4 7.72714351296671e-4 (unchanged)
κ 7.64230861320245e-4 7.69684039383334e-4

What changed in the package

There is one new self-contained package, research/five-stage-p10b-banks/, plus its own path-filtered workflow.
No existing file changes; #315's package is unchanged.

The new package is #315's re-pinned for the new word, using #315's own discovery/repin.py flow:

  • Changed data in bitword/producer/data/: pm_p10.json, local_design_p10.json, cube_orient_p10.json
    (new) and the frozen arcs arcs_p10.json (6,020 arcs).
  • Two changed producers, which verify.py never runs: the generator (optional cube orientation) and
    make_physical.py (tiered matching).
  • Re-pinned files: the five word files in bitword/selected/bit, word-pins.json and MANIFEST.json.
  • Prose: updated to the new word.

Every verification file is byte-identical to #315's. That covers verify.py, every *_check.py, code/,
scalar/, bitword/bit and the vendored checker. The checks are exactly #315's; only the strict pins changed. Two
of those pins change what is exercised. The entrance census is now {16: 1,200}, so geometry527 checks two
distinct actual rank-16 bases; there is no other rank. The bank patterns no longer contain a mixed pattern, so the
tiler's mixed-width path is not used.

Verification

Status, honestly

CI note. This branch also carries Rohan Arun's #318 commit, cherry-picked unchanged (it re-pins the root
Makefile and README.md hashes in research/joint-dual/SOURCE.json). Without it the repo-wide verify (…, joint)
job fails on main and on every open PR. The commit is identical to #318's and drops out once #318 is merged.

Attribution

The debt-penalised module anneal, the p = 10 local-design search, the balanced cube orientation, the tiered reuse
matching and the re-pin were prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code (Claude Opus 5.5 agents).

🤖 Generated with Claude Code

DreamingOfClouds and others added 2 commits October 10, 2026 13:22
…ed pair module, p = 10 local design, balanced cube orientation, tiered reuse matching)

Conditional kappa = 384842019691667/(5*10^17) = 7.696840393833340e-4 (bit binds).

New self-contained package derived from CrocSwap#315 (unchanged): pair module re-annealed with a
debt penalty (debt 95 -> 92), local design re-searched at p = 10, a balanced cube
orientation (every coordinate is position 0 in exactly 12 cubes), and a value-aware tiered
reuse matcher (still a maximum matching): 960 reuse pairs (was 890), R 8,100, exact
zero-padding banks. Every verification file is byte-identical to CrocSwap#315's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EK55qTfvjr6vvVGrBY6LyU
The "Verify research artifacts" workflow (make joint-dual-verify) fails on main
and on every open pull request since the root Makefile and README changed
(AssertionError: Makefile in joint_dual_compose.check_sources). Regenerated with
scripts/experiments/pin_joint_dual_sources.py; verify_joint_dual.py and
tests/test_joint_reclaim.py pass (16 tests) under Python 3.11. The joint-dual
certificates only change in their recorded source-manifest hash.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit a45747d)
@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

Thank you @DreamingOfClouds. This contribution is now retained on main in the scoped 100-PR review and contributor credits.

Contribution: Re-annealed p10b bit word and tiered reuse matching.

Review and limits: New scalar modules and balanced orientations are regenerated and the full finite construction is checked. Search scores nominate inputs; they are not admission evidence.

The complete original source, notices and relevant execution evidence are retained through the pinned source archive. The review distinguishes fresh local runs, source-bound historical Linux CI and prior exact-head review; it does not claim 100 fresh full mathematical audits. Closing this historical PR as reconciled. This preserves parallel and cumulative credit without replacing the selected frontier or promoting priced research targets to completed constructions.

Reviewed head: 0eca9340a3df6141b8e71a41638c3937b3522888. Publication: 4040a0f46d67b41c36a472a7cd4af791fd4c36cc.

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.

3 participants