From e7ba787e5a2ab430dd054901fe1a3feb72ef5ba5 Mon Sep 17 00:00:00 2001 From: "Douglas R. Colkitt" Date: Tue, 13 Oct 2026 17:33:01 -0400 Subject: [PATCH] Priority revision 3: aim complex and interface effort at structural levers Replace the generic complex cards with a rank-shape decoder card and a helper inventory card gated by a packing-ceiling screen. Add centre-path-sharing and coverage-law-change cards. Reweight recursive interfaces 15->20, verifier engineering 10->8 and incumbent optimization 5->2. Ask complex kappa claims to report their packing cap. The evidence is open PRs #1240/#1264 (exact but unreviewed), stated as such in the log, with revert and reopen conditions. Co-Authored-By: Claude Opus 5.5 (1M context) --- autoresearch.md | 43 ++++++-- docs/research/agent-task-catalog.json | 139 ++++++++++++++++++++----- docs/research/bottleneck-brief.md | 6 ++ docs/research/research-priority-log.md | 87 ++++++++++++++++ 4 files changed, 241 insertions(+), 34 deletions(-) diff --git a/autoresearch.md b/autoresearch.md index 810611c11a..83595495fa 100644 --- a/autoresearch.md +++ b/autoresearch.md @@ -97,9 +97,34 @@ starting points are historical evidence, not promises of unexplored territory. ## 2. Where effort is most useful The October 13, 2026 assessment is that many local improvements leave the paid -recursive profile unchanged, or improve a nonbinding supplier. Stronger packing -still helps, but a large jump needs a changed mechanism or interface. Recheck -this diagnosis against the selected record before spending a long session. +recursive profile unchanged, or improve a nonbinding supplier. Recheck this +diagnosis against the selected record before spending a long session. + +**Revision 3 diagnosis (pending review of #1240 and #1264).** On the binding complex side, a ≈ D/E: + +- **D is small.** Each call has about 99.6 live families. The coverage identity leaves one unpaid + coordinate per family, and the centre path then takes back 64. Only about 35.6 of 7,232 paid + coordinates per call remain unpaid. +- **E comes from small children.** The effective child rank is about 3.9, and rank-1 children are + about half of the recursive cost. + +[The packing ceiling](research/complex-local-word-ceiling/README.md) caps every hosting, owner or +idle repacking of the selected word at **+0.87%** (κ < 0.0016872). The open-claim census in #1264 +finds no covered claim able to pass κ ≈ 0.0016873 by packing. Its leading claims sit on words with +*lower* caps than the selected word. + +A target-scale gain must change the structure. Ideal one-at-a-time budgets (`levers.py`): + +| Lever | Ideal multiplier | +|---|---:| +| Centre path free | 2.80× | +| Centre path shared by two calls | 1.90× | +| Rank-16 local children | 2.31× | +| Two unpaid coordinates per family | 3.77× | +| Centre free and rank-16 combined | 6.5× (κ cap ≈ 0.0109) | + +These are favorable relaxations, not expected gains. Screen any changed local profile with +`ceiling.ceiling()` before building a network. For a supplier with width `m`, role count `W`, and `n_r` children of rank `r`, price the **whole completed construction**, including its additional charges: @@ -126,13 +151,13 @@ probabilities; the catalogue is the machine-readable source for assignments. | Track | Share | Useful outcome | |---|---:|---| | Bit mechanisms (`bit-mechanisms`) | 20% | A changed decoder/frame contract with a full paid budget | -| Complex mechanisms (`complex-mechanisms`) | 20% | A new decoding or helper-boundary mechanism | -| Recursive interfaces (`recursive-interfaces`) | 15% | Real eliminated work across a legal boundary | +| Complex mechanisms (`complex-mechanisms`) | 20% | A larger-rank decoder or helper inventory whose screened ceiling beats the selected word's | +| Recursive interfaces (`recursive-interfaces`) | 20% | A shared or smaller centre path, a changed coverage law, or other real eliminated boundary work | | Adversarial audit (`adversarial-audit`) | 15% | A specific missing implication or exact counterexample | | Independent verification/formalization (`independent-verification`) | 10% | A separately implemented check or scoped formal lemma | -| Verifier engineering (`verifier-engineering`) | 10% | Faster, reproducible checks with unchanged coverage | +| Verifier engineering (`verifier-engineering`) | 8% | Faster, reproducible checks with unchanged coverage | | Consolidation (`consolidation`) | 5% | Evidence-backed overlap, attribution or navigation repair | -| Incumbent optimization (`incumbent-optimization`) | 5% | A genuinely new, fully priced incremental improvement | +| Incumbent optimization (`incumbent-optimization`) | 2% | A genuinely new, fully priced improvement, reported against its packing cap | Before reopening a negative result, name the hypothesis you change. The [eight-term decoder bound](research/complex-decoder-field-extension-seed44/README.md), @@ -247,6 +272,10 @@ Do not run every historical replay just to change documentation. Do not run artifact-regenerating suites concurrently in the same worktree. Cache immutable, source-bound evidence only when coverage and invalidation remain explicit. +A new complex κ claim should report its local word's packing cap +(`research/complex-local-word-ceiling/ceiling.py`) and the fraction of it realized, +so reviewers can tell a packing gain from a structural gain. + Before submission, refresh the overlap check. Keep one focused PR with the task card, precise delta, exact heads, commands, evidence, limitations and credit. An independently corroborated or superseded contribution still deserves credit; diff --git a/docs/research/agent-task-catalog.json b/docs/research/agent-task-catalog.json index c05fafaa25..c52c0c25de 100644 --- a/docs/research/agent-task-catalog.json +++ b/docs/research/agent-task-catalog.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "priority_revision": 2, + "priority_revision": 3, "priority_log": "docs/research/research-priority-log.md", "assessed_on": "2026-10-13", "status": "Research suggestions, not reservations or assertions that these questions are unclaimed. Check current main and live PRs.", @@ -88,45 +88,51 @@ "weight": 20, "tasks": [ { - "id": "complex-masked-decoder", - "question": "Can one specified masked or overcomplete decoder improve the complete moment budget?", + "id": "complex-rank-shape-decoder", + "question": "Can a decoder deliver the local paid mass in fewer, larger-rank children (block frame climbs instead of rank-1 to rank-3 steps)?", "starting_points": [ + "research/complex-local-word-ceiling/README.md", "research/complex-decoder-field-extension-seed44/README.md", "research/complex-frame-pair-decoders/README.md" ], "methods": [ - "Synthesize a decoder with exact coefficients and fully priced helper endpoints.", - "Bound the best possible budget for a fixed support alphabet before synthesis." + "Find one exact small decoding identity whose frame path climbs in blocks, and price its complete per-call profile.", + "Bound the best effective child rank achievable for one fixed support alphabet, including copies, frames and restoration." ], - "acceptance_gate": "Change an assumption of the eight-term all-pairs bound and count all copied information, frames and restoration.", + "acceptance_gate": "A per-call local profile, with all copied information, frames and restoration counted, whose ceiling exceeds the selected word's by at least 5%; masked or overcomplete supports must change an assumption of the eight-term all-pairs bound.", "first_step": { "command": [ "python3", "-B", - "research/complex-decoder-field-extension-seed44/verify.py" + "research/complex-local-word-ceiling/verify.py" ], - "expected": "PASS_COMPLEX_DECODER_FIELD_EXTENSION_S44", - "inspect": "Locate the excluded classes: masked identities, at least nine terms, and deeper punctures.", - "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." }, - "first_experiment": "Choose one finite support alphabet and test exact decoding constraints before building a whole network.", - "bottleneck_link": "A cheaper fully realized decoder could increase deficit or lower recursive cost on the binding complex side.", + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin. Ideal budget: rank-16 delivery is 2.31x (levers.py).", + "bottleneck_link": "Rank-1 children are about half of recursive cost; the selected word's effective child rank is about 3.9. Larger-rank delivery lowers recursive cost per unit of paid mass.", "allowed_variations": [ - "Select a specific masked or overcomplete family with exact labels and supports." + "One masked, overcomplete or block decoder family with exact labels and supports.", + "A scoped lower bound on effective rank for one alphabet." ], "scope_change_triggers": [ - "Repeating the exact eight-term all-pairs search inside its proved scope." + "Repacking idle remainders of an unchanged word (covered by the packing ceiling).", + "Repeating the eight-term all-pairs search inside its proved scope." ], "overlap_terms": [ + "rank shape", + "block climb", "masked decoder", "overcomplete", - "eight-term" + "effective rank" ] }, { "id": "complex-new-helper-inventory", "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", "starting_points": [ + "research/complex-local-word-ceiling/README.md", "research/heterogeneous-owner-assembly/README.md", "certificates/selected-result.json" ], @@ -134,19 +140,19 @@ "Propose a changed helper inventory and derive an optimistic exact moment.", "Design a small completed instance and independently verify its endpoint and rank bill." ], - "acceptance_gate": "A new physically realizable contract, not another mixture already covered by the frozen catalogue.", + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a word with a lower ceiling is only a packing aid and must be labelled so.", "first_step": { "command": [ "python3", "-B", - "scripts/research_baseline.py" + "research/complex-local-word-ceiling/verify.py" ], - "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", - "inspect": "Read the frozen catalogue bound exclusions and select one genuinely different helper endpoint inventory.", - "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." }, - "first_experiment": "Write the complete optimistic child histogram and reject it immediately if even the relaxation has insufficient headroom.", - "bottleneck_link": "Helper inventory changes can improve the moment; repacking a covered cost interface cannot evade its scoped bound.", + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", "allowed_variations": [ "Narrow to one changed boundary or helper type with explicit counts." ], @@ -163,8 +169,86 @@ }, { "id": "recursive-interfaces", - "weight": 15, + "weight": 20, "tasks": [ + { + "id": "centre-path-sharing", + "question": "Can the 64-per-call centre path (eight rank-8 COPY/ERASE totals through the private temporary) be shared across calls or shrunk?", + "starting_points": [ + "research/complex-local-word-ceiling/README.md", + "research/split-centres-global/proofs/PR386-BIT-GEOMETRY.txt", + "certificates/selected-result.json" + ], + "methods": [ + "Derive a fully charged favorable relaxation for sharing one centre path across k calls, including restoration, hosting and precision.", + "Prove a lower bound on copied information per call for the selected decoder contract." + ], + "acceptance_gate": "Show the changed centre charge and copy profile per call with every added restoration or hosting cost charged, and its ceiling via ceiling.ceiling(centre=...).", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write the per-call centre charge and copy children for sharing across k = 2 calls, charge the sharing overhead, and screen it; stop this route if even the ideal sharing gains under 10%. Ideal budgets: free 2.80x, shared by two 1.90x (levers.py).", + "bottleneck_link": "The centre path consumes 64 of about 99.6 unpaid coordinates per call, i.e. about 64% of the raw deficit.", + "allowed_variations": [ + "One sharing pattern across a fixed number of calls.", + "One reduced copied-total contract for the existing decoder." + ], + "scope_change_triggers": [ + "Removing copies without a replacement contract for the decoder's copied totals." + ], + "overlap_terms": [ + "centre path", + "copied totals", + "private temporary", + "shared centre", + "batching" + ] + }, + { + "id": "coverage-law-change", + "question": "Can a template or call contract leave two or more unpaid coordinates per live family?", + "starting_points": [ + "research/complex-local-word-ceiling/README.md", + "research/idle-axis-hosting/PROOF.md", + "certificates/selected-result.json" + ], + "methods": [ + "State a replacement for the coverage identity (mass = 72W + 64N) and the contract change that realizes it, with its implementation cost.", + "Find an obstruction: show which data-endpoint obligation forces exactly one unpaid coordinate in the current template." + ], + "acceptance_gate": "An explicit replacement identity, verified on a small complete instance with dirty inputs, priced with ceiling.ceiling(unpaid=...).", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Explain where the single unpaid coordinate per family comes from in the hosted template; propose one change and price it. Ideal budget: two unpaid coordinates per family is 3.77x (levers.py).", + "bottleneck_link": "The deficit is one coordinate per family minus the centre charge; doubling unpaid coordinates per family scales it directly.", + "allowed_variations": [ + "One template change or one endpoint-contract change." + ], + "scope_change_triggers": [ + "Counting a coordinate as unpaid while leaving it unadvanced in the data endpoint." + ], + "overlap_terms": [ + "coverage identity", + "unpaid coordinate", + "deficit law", + "W - 64N" + ] + }, { "id": "persistent-boundary", "question": "Can a specified pair of consecutive calls eliminate a restoration that the next call reconstructs?", @@ -396,7 +480,7 @@ }, { "id": "verifier-engineering", - "weight": 10, + "weight": 8, "tasks": [ { "id": "replay-runtime", @@ -554,20 +638,21 @@ }, { "id": "incumbent-optimization", - "weight": 5, + "weight": 2, "tasks": [ { "id": "selected-packing", "question": "Is there a genuinely unsearched, explicitly bounded improvement to the selected packing?", "starting_points": [ "certificates/selected-result.json", - "research/heterogeneous-owner-assembly/README.md" + "research/heterogeneous-owner-assembly/README.md", + "research/complex-local-word-ceiling/README.md" ], "methods": [ "Search a named unclaimed canonical candidate domain with a reproducible partition.", "Prove a stronger scoped relaxation or exact optimum for one named residual subproblem." ], - "acceptance_gate": "Check live PR overlap first, price both suppliers and distinguish a search best from an optimum.", + "acceptance_gate": "Check live PR overlap first, price both suppliers and distinguish a search best from an optimum. Report the word's packing cap from ceiling.ceiling() and the fraction of it realized; label packing gains as such.", "first_step": { "command": [ "python3", diff --git a/docs/research/bottleneck-brief.md b/docs/research/bottleneck-brief.md index 5211ca1fab..7193ccd956 100644 --- a/docs/research/bottleneck-brief.md +++ b/docs/research/bottleneck-brief.md @@ -22,6 +22,12 @@ limiting conversion `κ = a/(1+a)`, κ > .01 needs both effective primitive budg above approximately `1/99`, with strict margins and all transfer obligations. This describes the current construction, not a lower bound for multiplication. +**Revision 3 update (pending review of #1240/#1264).** On the binding complex side, packing any +screened local word is capped within about 0.9% of the record. The 64-per-call centre path uses about +64% of the raw deficit, and the effective child rank is about 3.9. See the lever budgets in +[the packing ceiling](../../research/complex-local-word-ceiling/README.md) and the +[priority log](research-priority-log.md). + ## What a successful change must affect The construction recursively replaces work of width `m` with children of ranks diff --git a/docs/research/research-priority-log.md b/docs/research/research-priority-log.md index 346488a890..0dfd548037 100644 --- a/docs/research/research-priority-log.md +++ b/docs/research/research-priority-log.md @@ -84,6 +84,93 @@ helper failure, the next PR reconciliation, or a new mathematical bottleneck. If drift persists, narrow assignments or rebalance effort using evidence; a single report is insufficient reason to retire the mechanism tracks. +## Revision 3 — 2026-10-13: aim complex and interface effort at the structural levers + +**Exact base and selected source record:** `dadfea6e8a78ff6ba901705f87532a71c6f5bbb8`, unchanged #1094 +record (`certificates/selected-result.json`, κ 0.001672660197076918, complex side binding). + +**Evidence links and verification status.** The evidence comes from **open, unreviewed** PRs by the same +contributor. Their arithmetic is exact and reproducible, but no maintainer has reviewed them yet. + +- [#1240](https://github.com/CrocSwap/integer-mult-bounds/pull/1240) (`research/complex-local-word-ceiling`): + under PR1012's coverage identity (also open) and the halving guard, any hosting, owner or idle repacking of + the selected local word has a < 0.001690054109089, so κ < 0.0016872 (+0.869%). At a = 1/99, the word's + excess spend is 20.4 times the per-call budget. `levers.py` gives the one-at-a-time ideal budgets: centre + path free 2.80×, shared by two calls 1.90×, rank-16 children 2.31×, two unpaid coordinates per family + 3.77×, centre free plus rank-16 6.51× (κ cap 0.0109). +- [#1264](https://github.com/CrocSwap/integer-mult-bounds/pull/1264): 14 of the 30 open claims above the + selected κ (pinned by blob) use nine local words. None can pass κ < 0.0016873148 by repacking. The leading + #1148 line sits on words whose caps are 0.17–0.21% *below* the selected word's, and leads by packing closer. + 16 claims could not be screened. +- The live board shows about 30 near-identical packing claims clustered within 0.2% of the record, and + workflow feedback ([#1200](https://github.com/CrocSwap/integer-mult-bounds/discussions/1200)) reports that + the generic mechanism cards gave no quantitative target. + +**Current bottleneck; what changed.** The binding complex budget is about D/E. D is about 35.6 unpaid of +7,232 paid coordinates per call, and the 64-per-call centre path consumes about 64% of the raw deficit. E has +an effective child rank of about 3.9. Revision 1 diagnosed this qualitatively ("a large jump needs a changed +mechanism"). The new evidence quantifies it: packing headroom on every screened word is under 0.9%, while the +structural levers are worth integer multiples. It also explains why the queue keeps clustering: the generic +cards do not say what a mechanism must beat. + +**Track/card decisions.** + +- *Complex mechanisms:* **replace** `complex-masked-decoder` with `complex-rank-shape-decoder` (larger-rank + delivery; masked and overcomplete supports remain allowed methods). **Narrow** `complex-new-helper-inventory` + with a ceiling screen. Weight unchanged at 20. +- *Recursive interfaces:* **expand** with `centre-path-sharing` and `coverage-law-change`. Keep + `persistent-boundary` and `connector-alphabet-change`. Weight 15 → 20. +- *Incumbent optimization:* **narrow**. Claims must report their packing cap and realized fraction. Weight 5 → 2. +- *Verifier engineering:* **continue** at reduced weight, 10 → 8. +- Bit mechanisms, adversarial audit, independent verification and consolidation are **unchanged**. +- `autoresearch.md` asks every new complex κ claim to report its packing cap. + +**Old allocation → new allocation:** + +| Track | Old | New | +|---|---:|---:| +| Bit mechanisms | 20 | 20 | +| Complex mechanisms | 20 | 20 | +| Recursive interfaces | 15 | 20 | +| Adversarial audit | 15 | 15 | +| Independent verification | 10 | 10 | +| Verifier engineering | 10 | 8 | +| Consolidation | 5 | 5 | +| Incumbent optimization | 5 | 2 | + +**Paused scope and evidence that would reopen it.** + +- No track is paused. `complex-masked-decoder` is retired as a separate card, and its methods continue + under the rank-shape card. Reopen it if a masked decoder is found to help through a route other than child + rank (for example, deficit). +- Incumbent optimization returns to 5 or more if #1240 or #1264 fails review, or if a reviewed word is found + whose cap is well above its realized packing. + +**Next bounded experiments and stop rules.** + +- *Centre path:* a fully charged relaxation of sharing one centre path across two calls. Stop the card if the + ideal (1.90×) shrinks below a 10% gain once restoration and hosting are charged. +- *Rank shape:* one exact small identity with block frame climbs, screened with `ceiling.ceiling()`. Stop a + candidate whose ideal ceiling does not beat the selected word's by 5%. +- *Coverage law:* explain the source of the single unpaid coordinate per family. Stop if it is forced by the + data endpoint contract, and record that as an obstruction. + +**Uncertainties and useful work preserved.** + +- The lever multipliers are one-at-a-time favorable relaxations. They omit the cost of realizing each lever. +- The ceiling relies on PR1012's coverage identity, which is itself open. +- If review finds an error in #1240 or #1264, revert to the revision-2 cards. +- The bit side is unchanged and must advance too before κ > .01. Its levers are not quantified in this revision. +- Packing results remain valuable as realizability evidence. They are now labelled relative to their cap. + +**Next review trigger:** + +- review of #1240, #1264 or PR1012; +- the first fully charged centre-path or rank-shape result, positive or negative; +- or several sessions on the new cards. + +Until then, review roughly daily during the influx. + ## Template for the next decision ```text