Skip to content

Keep two measurement notes in the repo instead of nowhere - #8

Merged
Leo-Y-Zhang merged 2 commits into
mainfrom
claude/serene-goodall-wkmlhi
Sep 22, 2026
Merged

Leo-Y-Zhang merged 2 commits into
mainfrom
claude/serene-goodall-wkmlhi

Conversation

@Leo-Y-Zhang

Copy link
Copy Markdown
Owner

Both notes record work already done. No evidence changes, no value is affected, verify_all.py stays at 108/0.

These existed only as scratch files outside the repo. That isn't preservation — putting them next to DRAT.md and BENCHMARKING.md is.

vdw/SIGMA-EQUIVARIANCE.md

The reversal map i → n+1−i permutes colourings, which is all §4.4's lex-leader argument needs. It is not an automorphism of the encoded CNF: the pysat totalizer builds its auxiliary tree over positions in fixed left-to-right order, so 24 of 270 clauses at n=14, j=3 and 86 of 2221 at n=45, j=8 aren't preserved. Every offender is a cardinality clause — the exactly-one and AP blocks are σ-closed. Building the totalizer over the reversed input list gives exactly σ applied to the forward one.

No published term is affected, and the note leads with that plus the evidence: 16 rungs × 3 symmetry configurations = 48 solves, 0 disagreements, every witness re-verified; plus 2052/2052 cube-level agreement on sat(F & cube) vs sat(F & σ(cube)).

It also records a claim that did not survive testing. An earlier draft asserted that σ-renamed DRAT proofs are invalid but drat-trim accepts them anyway. That was measured on a base formula which is itself UNSAT — where every VERIFIED is a true verdict and a wrong acceptance is structurally undetectable. Redone on a satisfiable base: 0 SAT targets verified, and a deliberately non-symmetric control was rejected 17 of 17. There is no checker bug. The note says so plainly, which is the point of keeping it here — the retraction is on the record instead of the accusation surviving as a rumour.

What does survive is narrower and useful: per-cube proof transport under a geometric symmetry requires a symmetry-equivariant cardinality encoding, and the default totalizer isn't one.

vdw/CENTRAL-CUBING.md

What the opt-in central-position cubing is actually worth.

The premise partly reproduced. The prefix incidence figures are exact (144 at t=3, 105 at t=4); the central ones are 252 and 213, not the 248 and 212 first claimed — a full 40-window sweep finds no 6-window at t=3 summing to 248.

Central beats the repo's prefix cubing by 1.50×–3.66× on conflicts. But §7 states the honest baseline: cube-and-conquer at these sizes costs more conflicts than simply solving monolithically, so this narrows a self-inflicted regression rather than making cubing a faster way to compute values. Its real value is the certification path, where per-cube proofs are mandatory and a monolithic solve isn't an option.

§4 documents the soundness trap already guarded in code: porting the colour-symmetry rule to a non-prefix window can lose a solution ([3,3] j=3 n=19 is SAT but returns UNSAT under a naive port).

Also

One sentence in PAPER.md §4.4 pointing at the σ note, since that's where a reader meets the reversal constraint and would want to know its limits.

Verification

  • python verify_all.py108 passed, 0 failed
  • python scrub_paths.py --check → clean, no machine-local paths

🤖 Generated with Claude Code

https://claude.ai/code/session_011dH16KSogC4aDoxznH1d5n


Generated by Claude Code

Both record work already done; neither changes any evidence or value.

vdw/SIGMA-EQUIVARIANCE.md — the reversal map i -> n+1-i permutes colourings, which
is all the lex-leader argument of PAPER.md 4.4 needs, but it is NOT an automorphism
of the encoded CNF: the pysat totalizer builds its auxiliary tree over positions in
a fixed left-to-right order, so 24 of 270 clauses at n=14/j=3 and 86 of 2221 at
n=45/j=8 are not preserved. Every offender is a cardinality clause; the exactly-one
and AP blocks are sigma-closed. Building the totalizer over the reversed input list
gives exactly sigma applied to the forward one.

The note leads with the fact that no published term is affected, and gives the
evidence: 16 rungs x 3 symmetry configurations = 48 solves with 0 disagreements and
every witness re-verified, plus 2052/2052 cube-level agreement on sat(F & cube) vs
sat(F & sigma(cube)).

It also records a claim that did NOT survive testing. An earlier draft asserted that
sigma-renamed DRAT proofs are invalid yet drat-trim accepts them anyway. That was
measured on a base formula which is itself UNSAT, where every VERIFIED is a true
verdict and a wrong acceptance cannot be detected. Redone on a satisfiable base:
0 SAT targets verified, and a deliberately non-symmetric control was rejected 17 of
17. There is no checker bug, the note says so, and it is in the repo so the
retraction is on the record rather than the accusation being left as a rumour.

vdw/CENTRAL-CUBING.md — what the central-position cubing added earlier is actually
worth. The premise partly reproduced: the prefix incidence figures are exact, the
central ones are 252 and 213 rather than the 248 and 212 first claimed. Central
beats the repo's prefix cubing by 1.50x-3.66x on conflicts, but section 7 states the
honest baseline plainly -- cube-and-conquer at these sizes costs more conflicts than
simply solving monolithically, so this narrows a self-inflicted regression rather
than making cubing a faster way to compute values. Its value is on the certification
path, where per-cube proofs are mandatory.

Also adds one sentence to PAPER.md 4.4 pointing at the sigma note, since that is
where a reader meets the reversal constraint.

verify_all.py: 108 passed, 0 failed. scrub_paths.py --check: clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011dH16KSogC4aDoxznH1d5n
…aming

Fixes the gate failure on the previous commit: scrub_paths.py reported
"needs scrubbing: vdw/CENTRAL-CUBING.md". I had run scrub_paths.py --check before
git add, and it only walks tracked files, so both new files were skipped. Checked
this time with them staged.

- vdw/CENTRAL-CUBING.md carried an absolute scratchpad path in section 10 and named
  the repo's own checkout path in its preamble.
- vdw/SIGMA-EQUIVARIANCE.md carried an absolute scratchpad path to the driver script
  and described the drat-trim binary as "already present in this scratchpad".

Both also opened by calling themselves private notes that had not been committed or
published, which stopped being true the moment they were added to the repository.
They now say what they are: measurement notes recorded 2026-09-17, driven by
throwaway scripts that are not retained, against the code that is.

CENTRAL-CUBING section 10 no longer lists script filenames that do not exist here.
The implementation those scripts exercised is in vdw/vdw4.py, so it names what each
section re-derives from split_positions() and make_cubes_pos() instead.

No measurement, number or conclusion changed.

scrub_paths.py --check: clean, with the files staged. verify_all.py: 108 passed, 0 failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011dH16KSogC4aDoxznH1d5n
@Leo-Y-Zhang
Leo-Y-Zhang merged commit 3abc9aa into main Sep 22, 2026
7 checks passed
@Leo-Y-Zhang
Leo-Y-Zhang deleted the claude/serene-goodall-wkmlhi branch September 22, 2026 10:15
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