battery provenance: a recorded pool, a prereg that prices the extraction term, and three limits on the existing reads - #54
Merged
Conversation
…ion term, and three limits on the existing reads The 462-concept battery every disjoint-worlds read is scored over is a hand-authored string literal (run_g0clear.py:31-65, 465 words) whose entire filter chain is one order-preserving dedup removing three words (:66-67). No candidate pool was ever recorded, so the extraction term for those reads is UNCHECKABLE retrospectively. New files only. No paper, receipt, certificate or seal is touched, and run_g0clear.py and its 462-word battery are unchanged. - build_concept_pool.py / concept_pool.json — a pool that exists BEFORE the selection. 547,373 candidate types drawn by a stated rule from wikitext-103-raw-v1 pinned at revision b08601e0, then eight named filters each recording rule, why, cost, removal count and a sha256 of its survivors. Battery is a seeded sample (seed 52) of the 5,199 survivors. Survival ratio 462/547,373 = 0.00084403. Deterministic and byte-reproducible across PYTHONHASHSEED and platform line endings. CPU only; no weights loaded, four cached tokenizers. - PREREG_b52_pooled_battery_2026_09_01.md — reruns the read on that battery and reports E beside it. Seven machine-scored gates with declared power bases, a total outcome table, six null cells, a fresh split seed with a MEASURED freshness gate (the b34v3 lesson), and a two-sided reproduction gate at 0.15 derived from the binomial SE at n=70. Commits in advance to publishing a failure as a failure. - ADDENDUM_battery_and_holdout_limits_2026_09_01.md — three limits that BOUND the published reads without overturning them. Selection provenance unrecorded; the seed-0 FIN-70 set scored across nine committed experiments (two more than reported); the "open vocabulary" readout is a 462-way closed set over the same literal. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PREREG_b52_pooled_battery adds a preregistration, so the builder counts 381 where the committed ledger said 380. The ledger is generated from the committed receipts and was not rebuilt when the prereg landed -- the guard did its job. The delta is the count and the gates-block totals: 40 -> 41 gated preregs, 9 -> 10 declaring a power basis, and 8/8 -> 9/9 for those frozen since the field existed. The new prereg declares one, which is why the second ratio stays whole. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts: # papers/LEDGER.md
The merge brought in a tenth gated preregistration, so the power-basis ratio is 9 of 10 rather than 9 of 9. The regenerated value is the true one; the conflict was in a GENERATED file and was resolved by regenerating it rather than by hand-merging two stale versions. Worth noting rather than passing over: the tenth gated prereg does not declare a power basis. That is a fact about the prereg, not about the ledger. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #53 — identical content plus the ledger rebuild, on a fathom-lab branch so CI runs where it can be merged. #53 was opened cross-fork because the authoring account has pull-only access here; that is worth fixing separately.
E is measurable prospectively
POOL 547,373 → ELIGIBLE 5,199 → BATTERY 462, survival ratio 0.00084.The 462-concept battery the flagship reads are scored over is a hand-authored string literal — 465 words typed into
run_g0clear.pylines 31-65, with exactly one filter (an order-preserving dedup removingchicken,orange,mushroom). No tokenization, vocabulary, frequency, POS or quality filter exists anywhere in that 188-line file. So the extraction term for those reads is UNCHECKABLE retrospectively: the pool never existed as an artifact, and there is no rejection log, no source corpus and no seed to replay.This builds the pool that should have been there. Source
wikitext-103-raw-v1pinned at an HF revision, CC BY-SA 3.0, resolved from cache — no weights loaded, no GPU. Eight filters, each recording rule, justification, cost, removal count and a sha256 of its survivors. Two determinism leaks found and fixed that would have tripped the prereg's own VOID condition off Windows.Three limits on the existing reads
These bound the published reads; they do not overturn them.
Selection provenance is unrecorded. Confirmed exactly. The parent bank is 121 words, not the 110 the docstring and
parent_baseline.Nboth claim; 341 words are net new and how they were chosen is recorded nowhere.The held-out set's held-out-ness has been spent — and it is larger than first reported: nine committed experiments score the seed-0 FIN-70, not seven. Never fitted on for the map or either headline read, but three write-side scripts select a hyperparameter on a FIN slice, one commented verbatim "held-out concepts used to pick the steer-optimal layer" — always on native target directions, so not map leakage, but not untouched either. And SEL_dirs is 60-of-69 inside b34v3's training set with 9 inside its held-out set, so "sits inside the training set" is true of 60 and false of 9.
The "open-vocabulary" readout is a closed list — with a caveat that reduces its weight.
run_b35c.py:46isvocab = fin + tr, the same 462. But the docstring and the prereg both state that outright, andb35c_result.jsonreturnedINVALID__null_artifact, so no open-vocabulary claim is published from that run. The overclaim is in the name, not in a standing number.An independent reproduction of the split returned the 13/70 overlap matching
b34v3_fresh_split_addendum.jsonexactly, which is what licensed the rest of the split arithmetic.Disclosed weakness, named in advance
The pooled battery is broader in word class than the hand-authored one, because no offline POS tagger was available. The prereg names this in advance as the leading explanation if the reproduction gate fails, so it cannot be produced later as a convenient excuse.
Ledger
papers/LEDGER.mdrebuilt: 380 → 381 preregs, 40 → 41 gated, 9 → 10 declaring a power basis, 8/8 → 9/9 frozen since the field existed. The new prereg declares one, which is why the second ratio stays whole.🤖 Generated with Claude Code