diff --git a/research/rank16-rank1-surcharge-screen/README.md b/research/rank16-rank1-surcharge-screen/README.md new file mode 100644 index 0000000000..c2740090e2 --- /dev/null +++ b/research/rank16-rank1-surcharge-screen/README.md @@ -0,0 +1,66 @@ +# Rank-16 delivery survives every legal rank-1 surcharge + +**Negative screen. No new kappa.** The selected record is unchanged, and +`research/complex-local-word-ceiling/ceiling.py` is not edited. + +## Scope + +Chooser seed `fb1b693e95073cda2220efd59e654728` drew `p104-side-correction` +first. That experiment is already open for flag 0. The same seed's unclaimed +helper 600/601 sign test is PR #4061. This package is the other bounded screen +on `complex-rank-shape-decoder`: one candidate profile, accepted only if its +ceiling beats the selected word by 5%. + +The candidate is not an idle histogram of the unchanged selected word. The +published lever `{16: mass/16}` leaves idle mass at rank 51. Here that idle +mass is moved into the local profile as extra rank-1 children. The published +control that one extra rank-1 child lowers the ceiling does not say whether +the five-percent gate survives the largest legal count. + +## What is established + +The pinned model has selected local mass 5586 and idle mass 1646. At grid +`1e-15`: + +| profile | ceiling | +| --- | --- | +| selected word | `1690054109089/1000000000000000` | +| rank-16 delivery plus 1646 rank-1 children | `285077936577/125000000000000` | + +Delivering the selected local mass as rank-16 children and spending all 1646 idle-mass units on extra rank-1 children still clears the five-percent ceiling gate. + +The ratio of those ceilings is `2280623492616/1690054109089`, about 1.349, +against the gate `21/20`. One further rank-1 child makes local mass exceed +the coverage law and is rejected. Ideal rank-16 delivery with no surcharge is +the lever already printed by `levers.py`; it is not restated as a new ratio. + +## Reproduce + +Python 3.12, standard library only, from the repository root: + +```sh +python3.12 -B scripts/research_package.py --package research/rank16-rank1-surcharge-screen +``` + +Expected marker: `PASS_RANK16_RANK1_SURCHARGE`. + +## Limits + +This does not construct a rank-16 decoder, price frames, restoration, or +hosting, or change the halving guard. It does not repack an idle histogram at +ranks up to 51; those favorable packings are the ceiling paper, #3811 and +#3874. A charge the coverage law cannot express as rank-1 children is outside +this screen. The selected baseline replay was not run in this partial checkout. + +## Open next questions + +Which sourced copy, frame or restoration histogram, outside extra rank-1 +children in this coverage law, pushes rank-16 delivery under the five-percent +gate? The first step is to pin one such histogram and screen that exact +profile. No such histogram is pinned in `levers.py`. + +## Credit + +Douglas Colkitt's ceiling model and lever table are the pinned inputs. +Riquelme Soares (@hevlyo), with substantial AI assistance in the screen and +write-up. Apache-2.0. No independent human review is claimed. diff --git a/research/rank16-rank1-surcharge-screen/SOURCES.json b/research/rank16-rank1-surcharge-screen/SOURCES.json new file mode 100644 index 0000000000..9527e004a9 --- /dev/null +++ b/research/rank16-rank1-surcharge-screen/SOURCES.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "67f085acd86acd7d4e03922d9cf4b26bca66fed5", + "sha256": "47b42433f5a85809a3aadd29c2c339da2c6ed728e4f7762df6b88bccb7874cf0" + }, + { + "path": "research/complex-local-word-ceiling/ceiling.py", + "usage": "input", + "git_blob": "6c0f54527d879396f689523bfde19928a9b6157c", + "sha256": "86a1432870b3b21d8454106ec9162fddc0471472d9214c590a1420f2426cedfc" + }, + { + "path": "research/complex-local-word-ceiling/levers.py", + "usage": "input", + "git_blob": "e6aee6ce1178f5b68b9ce893b2f5b7f80a143b59", + "sha256": "24c71fc5dce5e2d8f9fbd34d059fc9a1c8ad635d93b62102ccb41b03a7b38b9e" + } + ] +} diff --git a/research/rank16-rank1-surcharge-screen/TASK.json b/research/rank16-rank1-surcharge-screen/TASK.json new file mode 100644 index 0000000000..bc12103569 --- /dev/null +++ b/research/rank16-rank1-surcharge-screen/TASK.json @@ -0,0 +1,72 @@ +{ + "schema_version": 1, + "task_id": "complex-rank-shape-decoder", + "priority_revision": 6, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "original_card": { + "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": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/complex-decoder-field-extension-seed44/README.md", + "research/complex-frame-pair-decoders/README.md", + "research/selected-k8-unrestricted-ends/README.md", + "research/eisenstein-reduction-copy-floor/README.md" + ], + "methods": [ + "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": "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. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "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": "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": [ + "One masked, overcomplete or block decoder family with exact labels and supports.", + "A scoped lower bound on effective rank for one alphabet.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Repacking idle remainders of an unchanged word (covered by the packing ceiling).", + "Repeating the eight-term all-pairs search inside its proved scope.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Searching below C=40 in the #2017 Eisenstein binary scalar-rectangle or fixed-support block-linear additive pairing model; specify a changed premise instead. This bound does not cover every complex decoder.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "rank shape", + "block climb", + "masked decoder", + "overcomplete", + "effective rank" + ] + }, + "scope_status": "refined", + "actual_scope": "Does any legal extra rank-1 child count on top of rank-16 delivery of the selected local mass push the pinned ceiling under the five-percent gate?", + "scope_change_reason": "The drawn p104-side-correction experiment is already open for flag 0, and PR #4061 took the unclaimed helper 600/601 sign test from the same chooser seed. This package is the other half of the rank-shape first experiment: screen one candidate profile with ceiling.ceiling() and reject it if the ideal ceiling misses the five-percent gate. The candidate is not an idle histogram of the unchanged selected word. It delivers the selected local mass as rank-16 children and moves idle mass into extra rank-1 children. The published lever table stops at ideal idle, rank 51.", + "bottleneck_link": "Rank-16 delivery is the catalogue's named 2.31x lever. A rank-1 surcharge is the natural copy charge inside this coverage law. If the strongest legal surcharge still clears five percent, no rank-1 copy count inside the law can reject the lever.", + "budget_minutes": 60, + "stop_rule": "Stop at the largest legal rank-1 count. Do not search a decoder, change ceiling.py, or price a charge the coverage law cannot express.", + "outcome": "negative-result", + "evidence": "At grid 1e-15 the selected ceiling is 1690054109089/1000000000000000 and the full surcharge ceiling is 285077936577/125000000000000, ratio 2280623492616/1690054109089, which is above 21/20. Idle mass is 1646. One more rank-1 child is rejected by the coverage law.", + "author": "Riquelme Soares (@hevlyo)", + "ai_assistance": "Substantial AI assistance was used for the screen, the verifier and the write-up. No independent human review is claimed.", + "open_questions": [ + { + "question": "Which sourced copy, frame or restoration histogram, outside extra rank-1 children in this coverage law, pushes rank-16 delivery under the five-percent gate?", + "why_it_matters": "The gate survives every legal rank-1 surcharge, including spending the entire idle mass. A rejection has to change the coverage law, the centre charge, the halving guard, or replace the rank-16 children.", + "first_step": "Pin one histogram whose mass is not a rank-1 child count and screen that exact profile with ceiling.ceiling().", + "blocked_by": "No such histogram is pinned in levers.py. The coverage law cannot express it as further rank-1 children." + } + ] +} diff --git a/research/rank16-rank1-surcharge-screen/VERIFY.json b/research/rank16-rank1-surcharge-screen/VERIFY.json new file mode 100644 index 0000000000..cb96d577ff --- /dev/null +++ b/research/rank16-rank1-surcharge-screen/VERIFY.json @@ -0,0 +1,21 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/complex-local-word-ceiling/ceiling.py", + "research/complex-local-word-ceiling/levers.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "Recomputes the selected ceiling and the rank-16 profile plus all 1646 legal rank-1 children at grid 1e-15, checks the five-percent gate, and rejects one further child." + } + ] +} diff --git a/research/rank16-rank1-surcharge-screen/verify.py b/research/rank16-rank1-surcharge-screen/verify.py new file mode 100644 index 0000000000..f425c57b9c --- /dev/null +++ b/research/rank16-rank1-surcharge-screen/verify.py @@ -0,0 +1,55 @@ +"""Five-percent screen of the strongest legal rank-1 surcharge on rank-16 delivery.""" + +import hashlib +import sys +from fractions import Fraction as Q +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +sys.path.insert(0, str(ROOT / "research" / "complex-local-word-ceiling")) +import ceiling as C # noqa: E402 + +PACKAGE = Path(__file__).resolve().parent +WORD = {1: 2412, 2: 418, 3: 432, 4: 142, 5: 82, 8: 8} +M, FAMILIES, STAGES, CENTRE = 73, 896, 9, 64 +GRID = Q(1, 10 ** 15) +CEILING_SHA = "86a1432870b3b21d8454106ec9162fddc0471472d9214c590a1420f2426cedfc" +BASE_HI = Q(1690054109089, 1000000000000000) +FULL_HI = Q(285077936577, 125000000000000) +LEMMA = ( + "Delivering the selected local mass as rank-16 children and spending all " + "1646 idle-mass units on extra rank-1 children still clears the five-percent ceiling gate." +) + + +def require(ok, why): + if not ok: + raise SystemExit(why) + + +def main(): + ceiling_path = ROOT / "research" / "complex-local-word-ceiling" / "ceiling.py" + digest = hashlib.sha256(ceiling_path.read_bytes()).hexdigest() + require(digest == CEILING_SHA, "ceiling.py hash changed") + require(LEMMA in (PACKAGE / "README.md").read_text(encoding="utf-8"), "README dropped the lemma") + mass = sum(rank * Q(count) for rank, count in WORD.items()) + require(mass == 5586, "selected local mass changed") + idle = C.model(WORD, M, FAMILIES, STAGES, CENTRE)["idle_mass"] + require(idle == 1646, "idle mass is not 1646") + base_hi = C.ceiling(WORD, M, FAMILIES, STAGES, CENTRE, grid=GRID)[1] + full = {16: mass / 16, 1: idle} + full_hi = C.ceiling(full, M, FAMILIES, STAGES, CENTRE, grid=GRID)[1] + require(base_hi == BASE_HI, "selected ceiling moved") + require(full_hi == FULL_HI, "surcharge ceiling moved") + require(full_hi > base_hi * Q(21, 20), "five-percent gate failed") + try: + C.model({16: mass / 16, 1: idle + 1}, M, FAMILIES, STAGES, CENTRE) + except ValueError as exc: + require("coverage law" in str(exc), "unexpected rejection") + else: + require(False, "one extra rank-1 child was accepted") + print("PASS_RANK16_RANK1_SURCHARGE") + + +if __name__ == "__main__": + main()