Family hunt: adversarial-review fixes (wall misdiagnosis, n2 driver, reverse-lift gate) - #16
Merged
Merged
Conversation
…bers
Adversarial review finding 1 (2026-08-12): the claim that phase 0's odd
n1 values 1, 3 were "eliminant artifacts" is false. Every odd count
occurred at a C = 0 target, where fibers of size 1 and 3 genuinely exist
(phase 0's eliminant was right there); phase 1's n1_exact returns None
at C = 0, so the certified pipeline was discarding the wall, not
correcting an artifact.
Fix: n1_wall counts wall fibers exactly by branch decomposition of
F3 = x*gamma = 0 (x = 0 branch and gamma = 0, x != 0 branch; lex
Groebner in shape-lemma form; every count verified by exact
substitution into F modulo the eliminant). The sweep now measures wall
targets instead of dropping them, reports the wall histograms, and
flags any pointwise A/B wall disagreement as a separation candidate.
Two wall regression targets pin the review's values ((-3,2/3,0) -> 3,
(4,1/5,0) -> 1, both members). All value-set claims are now scoped:
off-wall n1 in {0,2,4} -- a parity theorem, since the guard polynomial
is exactly E' (verified at import), so surviving E are squarefree --
plus wall values {1,3}, identical for both members so far.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adversarial review finding 2: the phase-2 n2 results (both members
attain {0,2,...,12}; "the invariant refuses to separate") had no
committed code or data behind them -- the numbers lived only in prose.
Fix: n2_numeric computes the two-story count (n2 = sum of n1 over the
chart-lifted first-story preimages) at 60-digit precision under the
relative-threshold discipline: any ambiguous margin (root
classification, pairwise root separation -- the numeric analog of the
exact squarefreeness guard -- a guard denominator, or a second-story
wall coordinate) excludes the target rather than guessing. A story-1
calibration gate checks the numeric count against n1_exact on shared
targets before anything is counted. Run: --phase2 400 --phase2-wide 86.
Re-measured with this driver (fresh target stream, same protocol):
attained n2 sets are {0, 2, 4, 6, 8, 10, 12} for BOTH members across
486 targets (5 member-cases excluded as ambiguous; calibration 40/40)
-- the lost run's headline reproduces. Comparison is by attained value
set (the essential range up to the moves), not pointwise: pointwise
counts at a shared target differ freely between two different maps and
are reported as observations only.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adversarial review finding 3: the two committed identities (inv_id, chart_id) prove only preimage -> root plus uniqueness of the lift -- an UPPER bound. The exactness of n1 = count_roots(E) additionally needs root -> preimage, which was true but verified nowhere; and n1_exact re-derived E textually, so a planted sign fault on the A*C^2 term passed every existing gate while silently changing 27/80 sampled counts (the calibration target has A = 0 and is blind to that term). Fix: member_kit now verifies the reverse-lift identity at import -- F_i(chart(w)) - T_i == 0 modulo E(w) over QQ(TA,TB,TC), denominator a power of TC only, for all three components -- closing the bijection, and stores E and the guard as verified template objects that n1_exact consumes directly. The review's planted fault is now (a) impossible to plant in n1_exact, which no longer derives E, and (b) caught at import if planted in the template itself (reverse-lift check fails). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The README's contents table and trust ledger predated the family hunt entirely (adversarial review finding 4). Add family_hunt.py to the contents table and give the track its own status table in ledger style: what is code-certified (the three import-time identities), what is a theorem (off-wall parity via guard = E'), what is exact-but-not-Lean (wall branch decomposition), what is numeric (n2, threshold-disciplined, calibrated), and what is open (tame equivalence of the pair -- the caveat previously lived only in issue #14). The wall correction is recorded where the claims are stated. CI's family-hunt smoke now exercises the reverse-lift import gate, the wall regression targets, and the phase-2 calibration gate. Co-Authored-By: Claude Fable 5 <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.
Fixes the three substantive findings of the 2026-08-12 adversarial review of the family hunt (context in #14 — this PR does not close it; the hunt continues on corrected footing).
Finding 1 (broken claim) — "phase 0's odd n1 values were eliminant artifacts" was false: every odd count occurred at a C = 0 target where fibers of size 1 and 3 genuinely exist; the certified pipeline was discarding the wall, not correcting an artifact. Now:
n1_wallcounts wall fibers exactly (branch decomposition of F3 = x·γ = 0, shape-lemma Gröbner, substitution-verified), the sweep measures wall targets, two regression targets pin the review's values, and every value-set claim is scoped (off-wall {0,2,4} — a parity theorem since guard ≡ E′; wall {1,3}).Finding 2 (unreproducible headline) — the phase-2 n2 results had no committed code. Now:
n2_numeric(60-digit, relative thresholds, ambiguity excluded, story-1 calibrated against the exact pipeline) is committed, and the 486-target run reproduces the lost run's claim: attained n2 sets {0, 2, 4, 6, 8, 10, 12} for both members, calibration 40/40, 5 member-cases excluded.Finding 3 (one-sided certification) — the committed identities proved only preimage → root (an upper bound). Now: the reverse-lift identity (F(chart(w)) ≡ target mod E, denominator TC-powers only) is verified at import, closing the bijection, and
n1_exactconsumes the verified E template — the review's planted sign fault is impossible at the call site and caught at import if planted in the template.README — family_hunt.py added to the contents table; the track gets its own per-claim status table (code-certified / theorem / exact / numeric / open), including the tame-equivalence caveat that previously lived only in issue #14. CI smoke now exercises the reverse-lift gate, wall regressions, and phase-2 calibration.
Comparison semantics corrected throughout: the invariant is the attained value set (essential range up to the moves), never pointwise counts at a shared target.
🤖 Generated with Claude Code