Skip to content

Prove the QQ16 fixed-bank scratch allocation needs sixteen extra arrays - #2940

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
petalas:research/qq16-obligation-20261016
Oct 16, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
petalas:research/qq16-obligation-20261016

Conversation

@petalas

@petalas petalas commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Summary

PR2651's retained decoder can place scratch in unproduced output slices. That allocation does not transfer to PR2707's unchanged zero-retention word. This package proves that sixteen additional owner-local payload arrays are necessary and sufficient under fixed output banks and per-scope scratch bindings through literal cleanup.

all 32 scratch lifetimes x all output dead-value gaps
  -> zero legal output aliases
16 overlapping final-scope lifetimes + explicit 16-slot allocation
  -> exact minimum of 16 extra arrays in this model

The source-bound proof and registered checker identify two concrete failures: F0->W0 erases a live source at events 697/698; F4->Z76 passes a last-read test but its cleanup at 3794 erases the rebuilt output. The package includes the exact word snapshot, full interval/gap receipt, source pins and structured next questions.

Task joint-query-controller, priority revision 5; base main 914cd73f563acaaa682d733a9fbfcc07272336a3. Original word PR2707 efa51a6c7ffec6edd556a98deedfe9deeba65809 was fetched independently and matched byte-for-byte. Canonical claim and result thread. Final overlap refresh completely paginated 473 open PRs, 1,627 discussion records and 2,157 closed/merged PRs at 12:52–12:53 UTC.

Credit ywz65/PR2707, Arham Tahir/PR2681, commdata2338/PR2651 and ywz65's output-slice successor, Nick Petalas/PR2807, Ali Romman and the retained QQ16/native lineage. PR2807 already supplies the 464-field upper count; this contribution adds the scoped allocation lower bound.

Evidence

  • Before: a last-data-read allocation admits F4->Z76 while omitting its later cleanup write. After: cleanup-inclusive verification rejects it, authenticates all 3,823 events and checks every candidate output alias.
  • Standard-library CPython 3.12.15 registered replay passes in normal/optimized modes, including five behavioral/artifact groups, a separate forward-access oracle, a positive alias fixture and six rejecting allocation controls. Optimized Python 3.14.8 tests also pass.
  • Source/typed-receipt corruption, duplicate/missing/oversized receipts, Git-free read-only replay and exclusive regeneration controls pass. Ruff and warning-as-error compilation pass. Separate internal source and artifact reviews found no material defect.
python3.12 -Werror -I -B scripts/research_package.py \
  --package research/qq16-fixed-scratch-allocation
python3.12 -Werror -B scripts/check_research_commit.py \
  --package research/qq16-fixed-scratch-allocation

Merge Danger

Door: Two-way.

Blast Radius: Scoped.

Only the new opt-in research package changes. This is a fixed-binding obstruction, not a universal memory lower bound, complete physical invoice, supplier admission or new kappa. Moving cleanup, migration, different output bindings, early consumption and encoded states change the hypothesis and remain open. Native semantics, full selected cold replay and formal-kernel verification were not rerun. The selected frontier and frozen predecessors are unchanged.

@Mister-Meeseeks
Mister-Meeseeks merged commit a36ebe3 into CrocSwap:main Oct 16, 2026
0 of 61 checks passed
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.

2 participants