Skip to content

Scoped exact minimum: even order-3 targets diag([ab],...) need 2t calls through t = 4 (no new kappa) - #1763

Merged
Mister-Meeseeks merged 3 commits into
CrocSwap:mainfrom
navinor:research/agent-25-even-target-96dd0470
Oct 15, 2026
Merged

Mister-Meeseeks merged 3 commits into
CrocSwap:mainfrom
navinor:research/agent-25-even-target-96dd0470

Conversation

@navinor

@navinor navinor commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Change and mathematical scope

In the formal F2[GL_2(F2)] rank-one-idempotent register model with free scalar
GL_r(F2) mixing (paid calls I + ([g]+1)N, g in {a,b}, N = v phi any binary
rank-one idempotent), the even order-3 diagonal targets
T_t = diag([c],...,[c]), c = ab = (ba)^2, at exactly r = t registers (all
registers arbitrary dirty inputs restored exactly) need exactly 2t paid
calls
for t = 1, 2, 3, 4 (minima 2, 4, 6, 8). This is the first even-target
tuple class of the coordinate-CNOT line: since c is even, the sign quotient
maps the target to I, so the inherited invariants flip (q even,
sum_i N_i = 0) and no predecessor conclusion transfers. Cross-register
sharing does not beat the two-calls-per-target tariff through t = 4.

Written invariants (package README sections 2-3): L1' sign-quotient parity
(q = 0 mod 2); L2' free mixing forced to U = I with sum_i N_i = 0; and a
degree 1-3 free-layer system in F_2<x,y>/(x^2,y^2), used only as a screening
filter. Correction
(#1763 (comment)):
an earlier version of this paragraph called that system complete, and package
README section 3 called it necessary for any hitting word. Both claims are
withdrawn. At r = 1 with every projector [1], the word b a b a is an
exact target word ((ba)^2 = ab = c) with sum_ba = 1, so the condition
sum_ba = 0 fails on a genuine target word. The corrected scope (package
README section 3): up to degree 3 the kernel of F -> F_2[G] is spanned by
R = xyx + yxy + x + y alone, the second claimed kernel correction
Z = z + z^2 + z^3 having degrees up to 6 with a degree at most 3 truncation
outside the kernel, so the matched system is a necessary condition only for
words of length at most 3. The system remains a screening filter
(layer_ok_even_target): it holds on the attaining words used here and
rejects the wrong-target control, but it is neither necessary nor sufficient
and is never used to exclude candidates.

Exclusion evidence (research/even-target-cnot-census/, standard library only):
complete natural-image meets (a homomorphic image, so empty meets exclude the
formal word) give zero hits at q = 2 for t = 1, 2, 3, 4, q = 4 for
t = 3, 4, and q = 6 for t = 4; the completeness argument for cross-depth
value recurrence (C C = I, C C C = C) is in README section 4. Every
attaining word is verified exactly in M_r(F2[G]) by an independently written
formal-coefficient engine, with drop-one-call mutations failing. Engine B
agrees with engine A on every small meet (including the seven 2+2 pairs at
t = 2). Calibration: the exact-depth ball value counts at r = 4
(240 / 32,651 / 3,639,920) match the recorded counts in
#1705 exactly.

Validation on the committed head:

  • python3.12 -B scripts/research_package.py --package research/even-target-cnot-census
    passes (PASS_REGISTERED_RESEARCH_PACKAGE research/even-target-cnot-census outcome=completed), and --check-only passes metadata and pins.
  • python3 -I -B research/even-target-cnot-census/verify.py --check-receipt
    prints PASS_EVEN_TARGET_CNOT_CENSUS t1r1_min=2 t2r2_min=4 t3r3_min=6 t4r4_upper=8 t4r4_excluded={2: 0, 4: 0, 6: 0} balls4=240,32651,3639920 pr1705_ball_match=True no_new_kappa (about 50 s).
  • python3 -I -B research/even-target-cnot-census/test_verify.py passes 11
    tests including drop-one, wrong-label, wrong-target, an |/^ confusion
    regression control, receipt-mutation rejection, and the review-regression
    controls (the b a b a counterexample, filter non-sufficiency, and minima
    independence from the layer condition).

Reproduce:

python3.12 -B scripts/research_package.py --package research/even-target-cnot-census

Task card, overlap and limits

Task bit-new-register-model (chooser track bit-mechanisms, OS nonce
96dd0470d4d1febfb9db9174583232e0, priority revision 3), refined inside its
allowed "fixed larger register count / specified nonabelian operation family"
variation to the even order-3 target class; the local task card is
research/even-target-cnot-census/TASK.md. Concurrent work on other objects of
the same line is credited and untouched: the balanced ten-call four-SWAP
residual (#1317 (comment)),
the label-saturation proof (#1722),
the UT_3(F2) commutator line (#1478,
#1573), and 1337isnot1337's
heterogeneous GL_2/AGL_2 tuple claims in
#1317. A final
find_overlap.py --refresh (complete pagination, 435 open PRs / 396 discussion
records at 2026-10-14T09:10Z) found no competing even-target claim.

Limits: t = 5 and r > t are untouched; nothing is claimed for other target
tuples or alphabets; no physical/compiler/hosting/precision admission, no
supplier or paid-moment change, no kappa and no selected-frontier change. The
q*(t) = 2t statement for t >= 5 is open.

Credit Gareth Davidson (@bitplane, #1333)
for the model question and scalar normalization; commdata2338
(#1414,
#1491,
#1495,
#1496), Cinna Davis
(#1541), Aaron Wang
(#1705, ball-count
calibration), Ross Richardson (#1722),
juper997 (#1478) and
steph4n-gh (#1573) for the
surrounding register-model line; Ali Romman, eumemic and David Govea for the
retained lineage. No predecessor executable is imported.

Contributed by Aaron Wang with help from opencode. Apache-2.0.

@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

The full registered replay passes, but substantive review found a counterexample to the section 3 necessary free-layer system (reviewed head 07910c7bee862dadbb3b3d30ea5dfcdbbbe23fda).

At r=1, set every projector to [1] and take b a b a. In the full formal algebra (ba)^2=ab=c, so this is an exact target word. However, sum_ba=1 (three ordered b-before-a pairs), contradicting the claimed necessary condition sum_ba=0. Using your submitted engine, formal_is_target(formal_word_value(word,1),1) is true while layer_ok_even_target(word,1) is false.

Please remove or repair that layer claim and add this regression control. This does not refute the independently enumerated minima through four roles; those can remain a useful scoped contribution if their proof and search do not rely on the invalid layer conditions. Holding incorporation for this correction; original authorship and the positive replay evidence are retained.

… census

Review follow-up on CrocSwap#1763 (counterexample from CrocSwap#1763 (comment)): at r=1 with every projector [1], the word b a b a is an exact target word ((ba)^2 = ab = c) but sum_ba = 1, so the degree 1-3 free-layer system is not necessary. README section 3 now demotes layer_ok_even_target to a screening filter (neither necessary nor sufficient) and states the corrected necessary condition restricted to words of length q <= 3, where the degree matching is valid (kernel of F -> F2[G] up to degree 3 is spanned by R alone; machine-checked). New regression controls in test_verify.py: counterexample acceptance, filter non-sufficiency, kernel rank/scope, and minima independence from the layer condition. The q*(t) = 2t minima 2/4/6/8 are unchanged: exclusion uses only L1' parity, the q=1 direct check and the meets. TASK.json/VERIFY.json wording aligned. Contributed by Aaron Wang with help from opencode.
@navinor

navinor commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Correction follow-up: section 3 free-layer necessity claim

Responding to the review comment
#1763 (comment)
(substantive review in the fifth 100-PR batch round,
https://github.com/CrocSwap/integer-mult-bounds/blob/main/docs/research/community-efficient500-review.md).
The counterexample is confirmed and the claim is corrected in commit
b3f68c90 on research/agent-25-even-target-96dd0470, pushed to the fork.

Counterexample reproduced

On the reviewed head 07910c7bee862dadbb3b3d30ea5dfcdbbbe23fda, with the package's own engine from the worktree root:

$ PYTHONUTF8=1 python3.12 -I -c "import sys; sys.path.insert(0, 'research/even-target-cnot-census'); import verify as v; w = [(v.B_IDX,1,1),(v.A_IDX,1,1),(v.B_IDX,1,1),(v.A_IDX,1,1)]; print('formal_is_target:', v.formal_is_target(v.formal_word_value(w,1),1)); print('layer_ok_even_target:', v.layer_ok_even_target(w,1))"
formal_is_target: True
layer_ok_even_target: False

(PYTHONUTF8=1 is set for stable console encoding; python3.12 is the Python 3.12 interpreter, run from the worktree root.)

Exactly as reported: at r = 1 with every projector [1] each call is I + ([g]+1)[1] = [g], so b a b a has value [baba] = [(ba)^2] = [ab] = [c], while layer_sums gives sum_ba = 1 (three ordered b-before-a pairs), contradicting the claimed sum_ba = 0. A direct machine check also confirms (ba)^2 = ab = c in GL_2(F_2).

Old vs new wording

Old, package README section 3 (reviewed head):

sum_{ab-pairs} N_i N_j               = I_r + nu
sum_{ba-pairs} N_i N_j               = 0
sum_{aba-triples} N_i N_j N_k        = lam + nu
sum_{bab-triples} N_i N_j N_k        = lam + nu

"These are necessary conditions for any hitting word; lam, nu in M_r(F_2) are free a priori." derived against "The kernel of F -> F_2[G] up to degree 3 is spanned by R and Z".

New, package README section 3 in b3f68c90: the heading is now "Free-layer system (degree 1-3): screening filter, not necessary"; the necessity claim is withdrawn with the counterexample stated; layer_ok_even_target is documented as "neither necessary nor sufficient and is never used to exclude candidates". The one necessity statement kept is explicitly scoped to words of length at most 3, where the degree matching is valid:

sum_a N_i        = sum_b N_i        = I_r + lam
sum_{ab-pairs} N_i N_j               = I_r
sum_{ba-pairs} N_i N_j               = 0
sum_{aba-triples} N_i N_j N_k        = lam
sum_{bab-triples} N_i N_j N_k        = lam

The counterexample b a b a has length 4 and lies outside that class, so no claim is made for words of length 4 or more. The old derivation's kernel premise is also wrong: Z = z + z^2 + z^3 carries degrees up to 6 and its truncation to degree at most 3 maps to [ba] + [e], which is nonzero and outside the kernel; up to degree 3 the kernel of F -> F_2[G] is 1-dimensional, spanned by R = xyx + yxy + x + y alone. Both facts (rank 6 of the seven monomial images, and the corrected system on every hitting word of length at most 3 at r = 1, 2) are machine-checked in test_verify.py.

What was repaired

  • research/even-target-cnot-census/README.md: section 3 rewritten (withdrawn claim, counterexample, corrected statement scoped to words of length at most 3, filter status); the section 3 open question now asks for a degree-complete kernel analysis and records that the degree 1-3 system cannot exclude q < 2t.
  • research/even-target-cnot-census/verify.py: docstrings and comments no longer call the system necessary; behavior unchanged (so the receipt and final line are unchanged).
  • research/even-target-cnot-census/test_verify.py: four new controls — the reviewer's regression (formal_is_target accepts b a b a at r = 1 while layer_ok_even_target rejects it), filter non-sufficiency (r = 2, a b on one projector passes the filter and is not a target), kernel rank and short-word scope, and minima independence from the layer condition. The test also resolves its own directory so the README command with -I runs.
  • research/even-target-cnot-census/TASK.json and VERIFY.json: the "invariants" / "checked on all attaining words" wording replaced with the screening-filter status.
  • This PR body: the sentence "a complete degree 1-3 free-layer system ... checked on every attaining word" replaced with the correction (same counterexample and scope), and the now-stale validation count "passes 7 tests" updated to "passes 11 tests" so the list matches the tree. Nothing else in the body changed.

Why the minima do not depend on the corrected condition

Verified: the enumerated minima 2 / 4 / 6 / 8 (q*(t) = 2t for t = 1..4) never use the free-layer system. Exclusion consists of (i) the L1' sign-quotient parity invariant (odd lengths never searched), (ii) the direct q = 1 formal check at t = 1, and (iii) the natural-image meets (zero hits at q = 2 for t = 1, 2, 3, 4, q = 4 for t = 3, 4, q = 6 for t = 4), with engine B agreement and the cross-depth completeness argument of README section 4. L1' and L2' are separate sign-quotient identities over F_2[eps]/(eps^2) and are untouched. The layer filter is only asserted on the attaining words. The new test test_minima_do_not_rely_on_layer_condition makes the filter vacuous and re-runs the pipeline: the minima and exclusion counts are unchanged, and the full run still prints

PASS_EVEN_TARGET_CNOT_CENSUS t1r1_min=2 t2r2_min=4 t3r3_min=6 t4r4_upper=8 t4r4_excluded={2: 0, 4: 0, 6: 0} balls4=240,32651,3639920 pr1705_ball_match=True no_new_kappa

So the review's assessment is confirmed: the minima through four roles and the q*(t) = 2t statement through t = 4 stand with their existing proof and search, which do not rely on the invalid layer conditions.

Verification on the corrected head b3f68c90

$ python3.12 -I -B research/even-target-cnot-census/test_verify.py
Ran 11 tests in 0.103s
OK

$ python3.12 -I -B research/even-target-cnot-census/verify.py --check-receipt
...
PASS_EVEN_TARGET_CNOT_CENSUS t1r1_min=2 t2r2_min=4 t3r3_min=6 t4r4_upper=8 t4r4_excluded={2: 0, 4: 0, 6: 0} balls4=240,32651,3639920 pr1705_ball_match=True no_new_kappa

$ python3.12 -B scripts/research_package.py --package research/even-target-cnot-census
...
PASS_EVEN_TARGET_CNOT_CENSUS t1r1_min=2 t2r2_min=4 t3r3_min=6 t4r4_upper=8 t4r4_excluded={2: 0, 4: 0, 6: 0} balls4=240,32651,3639920 pr1705_ball_match=True no_new_kappa
PASS_REGISTERED_RESEARCH_PACKAGE research/even-target-cnot-census outcome=completed

Remaining obligations

  • Words of length 4 and more now have no free-layer necessary condition at all; the rewritten open question (a degree-complete kernel analysis starting at degree 4) is unproven.
  • t = 5, r > t, other target tuples and alphabets remain untouched; q*(t) = 2t for t >= 5 is open.
  • The screening filter must not be reused as a gate: it rejects genuine target words (the counterexample) and accepts non-target words.
  • No kappa, selected-frontier, upstream/ or frozen-input change.

Attribution: Aaron Wang, with help from opencode.

@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

Thanks for the contribution. Review of b3f68c908d5bbff8886c197ff0dd968acfc17e78 in the frozen 100-PR round found one remaining issue:

The corrected mathematical census and tests pass, but SOURCES.json labels the mutable task catalogue as a live input and pins bytes predating current main. Move historical assignment provenance to the pinned Git snapshot so the registered package also replays after integration.

The scoped replay evidence is retained in the batch review. Passing finite checks and the scope of the written claim are tracked separately. This PR is staying open for the focused revision; contributor and predecessor credit are retained.

@navinor

navinor commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

Reproduced and fixed on research/agent-25-even-target-96dd0470 (new head eee12d54, on top of the reviewed b3f68c908d5bbff8886c197ff0dd968acfc17e78). This responds to the review comment on #1763 ("Scoped exact minimum: even order-3 targets diag([ab],...) need 2t calls through t = 4 (no new kappa)" by Aaron Wang), comment #1763 (comment).

Reproduction (before the fix). At the reviewed head the registered replay passes on the branch, because the branch's catalogue still equals the pinned bytes. Against current main d91f7378 (i.e. after integration) the same registered package fails at the binding check, exactly as the review describes:

$ python scripts/research_package.py --package research/even-target-cnot-census --check-only
working source drift: docs/research/agent-task-catalog.json

The full registered replay fails identically before any verification command runs. The underlying mismatch is the live catalogue drifting past the pin:

pinned usage   : input
pinned git_blob: 06c96f5579bb67ed1b86d334e78fbed7da6945f1
pinned sha256  : 6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075
live sha256    : 7d185cd8c2af35988d638d969748ad7b670f902606444dbfc748e4402c340df6

Old vs new binding.

  • Old: SOURCES.json listed docs/research/agent-task-catalog.json with usage: "input", so the checker required the mutable live catalogue to keep the pinned bytes (working source drift), and VERIFY.json carried it in inputs as a live CI input.
  • New: the row is usage: "provenance" and the path is removed from VERIFY.json inputs. Historical assignment provenance is now bound only through its recorded Git commit: git blob 06c96f5579bb67ed1b86d334e78fbed7da6945f1 at base commit 0b1cccf86e2f5132ed286a26ef0a681a495740ea, sha256 6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075 unchanged. Path, blob, sha256 and base commit are all untouched; original_card still resolves against the pinned catalogue snapshot at that commit. This matches the repo's existing convention: the other 128 registered packages that pin docs/research/agent-task-catalog.json do so as provenance and none declare it a live input. The mutable catalogue file itself was not modified, and no mathematical content, numbers, or reproduction commands changed.

Verification (Python 3.12, registered replay against current main d91f7378 with the fixed package):

PASS_EVEN_TARGET_CNOT_CENSUS t1r1_min=2 t2r2_min=4 t3r3_min=6 t4r4_upper=8 t4r4_excluded={2: 0, 4: 0, 6: 0} balls4=240,32651,3639920 pr1705_ball_match=True no_new_kappa
PASS_REGISTERED_RESEARCH_PACKAGE research/even-target-cnot-census outcome=completed
  • --check-only against current main: PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check).
  • Package tests: Ran 11 tests in 0.102s, OK.
  • Previously retained results reproduce unchanged: the final line above is identical to the pre-fix baseline run at the reviewed head and to the evidence recorded in TASK.json, with minima 2 / 4 / 6, t = 4 upper 8, ball counts 240 / 32,651 / 3,639,920, the recorded PR1705 calibration (Research: four coordinate-SWAP targets at r=4; calls 2, 4, 6 excluded, minimum narrowed to 8-12 (no new kappa) #1705) matched, and RECEIPT.json fields compared (only wall-clock runtime varies between runs).

Remaining obligations. None for this finding. The claim scope tracked separately in the batch review (https://github.com/CrocSwap/integer-mult-bounds/blob/main/docs/research/community-efficient1100-review.md) and the open questions in TASK.json are unchanged; the t = 4 figure remains an upper bound with the shorter even lengths excluded, exactly as recorded.

Aaron Wang, with help from opencode.

@Mister-Meeseeks
Mister-Meeseeks merged commit bd58157 into CrocSwap:main Oct 15, 2026
40 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