Repository navigation
Description
Hub: #15. Baseline: main e52d15b (CC rules excl,pack,orbf,parity,leaf,overlap, -ub-search Stern). Timing basis: main 12b3e05 tables (optimization/baselines/). GH-148 (MaxSAT stabilizer-overlap propagator) is a separate agent's round and is not touched here.
Goal of the round: raise certified CC lower bounds on the 17 open tier5 codes (BB_756/864/1080 at 30; 14 TN codes at 20-24 after 6 h on one core). Each extra CC level costs ~3-4x, so a candidate must remove a constant factor of >= 3x on the hard levels to move a bound. Multi-core CC is out of scope (PI decision).
Prior records read: GH-124 (S0/S1, ADJUDICATION), GH-133, GH-138, GH-140, GH-146 reports; docs/LITERATURE_CC_2026.md (sections 3-4).
Measurement before the proposals (Mac, pure-Python probe, a few seconds per code)
The CC engine's orbit seeds and its single-half (XZ-dual) search come only from the GH-75 candidate family of index maps (block / strided / 2-D shifts, half swaps). I computed the automorphism group of each code's coloured Tanner graph (qubits, Hx rows, Hz rows; rows mapped to rows of the same type) by individualisation-refinement, with exhaustive (not budget-limited) non-orbit proofs:
| Codes | Orbit seeds now (GH-75 family) | Tanner-graph automorphism group |
|---|---|---|
| TN_288, TN_324, TN_432, TN_540, TN_576 (open) | none (index rule, 288-576 seeds, both halves) | 36 orbits of size 8 / 9 / 12 / 15 / 16 (free action) |
| TN_496 (open) | 16 orbits of 31, both halves | same orbits, plus an XZ-swapping map (single-half search possible) |
| TN_360/396/468/504/612/684, TN_252 | 36 orbits of n/36 | same orbits (nothing new) |
| TN_648_10, TN_648_14 (open) | none | trivial group |
| BB_756/864/1080 (open) | 2 orbits + dual map | same |
| LP_340/442/544/714 (tier 1-4), LP tier5 | 34 orbits, no dual map (both halves) | same orbits, plus an XZ-swapping map |
| BB_288 | 2 orbits | transitive (1 orbit) |
| TN_200, TN_250 (tier 2/4) | none | orbits of size 2 |
| GB_144_12_12 | 2 orbits (rowspace map) | trivial Tanner group (so the new generators must be added to, not replace, the family) |
After individualising any one qubit, refinement is discrete on every open code, so all point stabilisers are trivial. Second-level canonicalisation (Literature Rank 6b) therefore gains nothing on these codes; I drop it.
Proposal 1 (SELECTED): Tanner-graph automorphism discovery feeding the CC orbit seeds and the dual map (-cc-aut=on, default off)
- Hypothesis. The CC engine misses symmetry on 6 of the 14 open TN codes, and the dual map on TN_496 and every LP code. Orbit seeds gave 2.2-2.5x on TN_180 (orbits of 5) and 5.8x on LP_714 ([Mac agent] CC-Ladder Hybrid: connected-cluster lower-bound engine (packing bound, orbit seeds) inside DistQLDPC #124 S1/ADJ section 8). So orbits of size 8-16 should give roughly 2.5-5x at the same level on TN_288/324/432/540/576. A verified dual map halves the work (one half instead of two).
- Change. New own code
src/cc/cc_aut.{h,cc}: joint colour refinement plus individualisation search for qubit permutations that map every row set of each class onto a row of the same class (edge-checked). It also searches for one map that swaps the Hx and Hz classes. A deterministic work budget applies. The generators are appended to the [Agent experiment] mac-symbreak-20261009: code-automorphism orbit symmetry-breaking clause #75 candidates offind_half_symmetry, and the swap map is offered to the dual-map verifier only whenfind_dual_mapsfinds none. Every candidate goes through the existing GF(2) verifiers, unchanged. The CC search code (cc_half.cc) is not changed. The flag is off by default, and with it off the output is byte-identical to main. The MaxSAT path is untouched. - Expected node reduction. 2.5-5x on TN_288/324/432/540/576 and ~2x on TN_496. That is +1 level (maybe +2 on TN_288/324) within 6 h on up to 6 open codes, and ~2x on LP codes in tier 1-5. No change elsewhere except detection time (target < 10 ms on tier-1 codes).
- Correctness risk: low. Soundness sketch. The orbit-seed rule ([Agent experiment] mac-split-symbreak-20261009: symmetry breaking inside interleaved CSS halves (GH-73 x GH-75 interaction) #85/[Mac agent] CC-Ladder Hybrid: connected-cluster lower-bound engine (packing bound, orbit seeds) inside DistQLDPC #124) and the dual-map single-half search ([Agent experiment] mac-dualskip-20261009: dual-half elimination (dX = dZ via verified XZ-dual map) in the interleaved CSS split #87/[Mac agent] Main + dual-map bound sharing (both halves race, no incremental solver) #107) are proven for any set of permutations that pass their GF(2) checks: pi(rs H) = rs H and pi(rs [H;G]) = rs [H;G] (per half), or pi(rs Hz) = rs Hx and pi(rs [Hz;Gx]) = rs [Hx;Gz] (dual). The new code only proposes candidates, so a bug in it can lose symmetry but cannot admit a wrong one. Tests: hidden symmetries (random relabelling of planted-shift codes; relabelled hypergraph-product codes with a transpose duality) under all rule subsets vs brute force. A mutant that skips the verification and adds a non-automorphism must give wrong answers.
Proposal 2: per-logical ("lambda-odd") pseudo-check for the k = 2 TN codes (TN_288, 496, 504, 576, 612, 684)
- Hypothesis. Every nontrivial X-logical has odd overlap with some dual logical representative x_i. k searches, each with x_i added as an odd pseudo-row at the root, cover F. Each one starts with one more odd row (stronger packing and branching from the root), and its seeds can be restricted to supp(x_i) with earlier qubits forbidden.
- Expected effect. Uncertain, 1-3x on TN (Literature Rank 7), offset by running k = 2 searches. Nothing on BB (orbits already leave 2 seeds).
- Risk: medium. The completeness argument needs a cover proof per unit, and it must interact correctly with excl/orbf (orbits must fix x_i or be dropped). Soundness sketch. F = union over i of F_i, with F_i = {v in F : <v, x_i> = 1}. Each F_i search is a CC search on [H; x_i] with target syndrome e_last, and connectivity holds because x_i is a row. The level verdict is the OR over i.
Proposal 3: overlap-aware fractional packing bound
- Hypothesis.
packcounts greedily chosen disjoint odd rows. An LP-dual (fractional) bound: max sum_r y_r over odd rows with sum over r containing q of y_r <= 1 for each free qubit q. Combined with the [Mac agent] CC engine: stabilizer-overlap pruning (Lee 2026) with forbidden-qubit propagation #138 slack per stabilizer row, this gives a larger lower bound on the qubits still needed, especially on TN, where odd rows share candidates through 4-cycles. - Expected effect. 1.2-2x fewer nodes on TN (speculative), at 2-5x more cost per node for an incremental fractional packing. Net effect uncertain; [Mac agent] CC engine: stabilizer-overlap pruning (Lee 2026) with forbidden-qubit propagation #138 showed that +6-9 % per-node cost already cancels a 5-13 % node gain.
- Risk: medium. Any feasible dual solution is a valid bound (weak duality), but floating point must be avoided (integer/half-integer packings only) to keep the bound exact. Soundness sketch. Each odd row of S needs >= 1 qubit of e \ S, each qubit of e \ S lies in the rows it covers, so sum_r y_r <= |e \ S| for any fractional packing y.
Selection
Proposal 1. It is the only one whose potential was measured before implementation (5 open codes go from no symmetry to orbits of 8-16, TN_496 and all LP codes gain a verified dual map). Its effect is multiplicative with every existing rule. Its correctness risk is the lowest, since all soundness rests on the existing GF(2) verifiers and the search code is unchanged. It is cheap to test against brute force with hidden symmetries. Proposals 2 and 3 have unmeasured, possibly break-even effects and medium soundness risk. They stay candidates for a later round. Proposal 1 does not help TN_648_10/14 (trivial group), BB_756/864/1080 or the 7 TN codes that already have orbits. For those, the next lever stays a constant-factor pruning gain (Proposal 3) or the PI's multi-core decision.
Plan: Tier 0 (tests, byte identity on tier0+1 for both engines), S0 node counts (BB_360, BB_756, TN_288, TN_360, LP_1428), Tier 1-4 five-seed panels -engine=cc old vs -cc-aut=on, Tier 5 27 cells 6 h CC only. All timing on yfclab2 cores 64-123, one process per core, 4 GB cap. Any new lower bound will be reported as PLAUSIBLE with a relabelled cross-check. No stems are renamed.
Activity
GH-152: faster candidate search (replayed source refinement, refutati…
GH-152: cheaper candidate-search setup (two-pass CSR graph, moved dua…
GH-152: evaluation record (Tier 0-5, S0, cross-checks) and README ent…
guluchen commentedon Oct 28, 2026
Result:
-cc-aut=onpasses Tier 0-5; new PLAUSIBLE CC lower bounds on 6 open TN codesBranch
experiment/gh-152-tanner-aut. Evaluated binarydfd0717; record commit4a05225. Full record:optimization/experiments/GH-152/REPORT.md. No PR opened, nothing merged.What it does.
-cc-aut=on(off by default) runs individualisation-refinement on the coloured Tanner graph (qubits, Hx rows, Hz rows). It proposes extra automorphisms for the CC orbit seeds, plus one map that exchanges the Hx and Hz rows for the single-half search. Every candidate passes the existing GF(2) checks before it is used. The search code, the driver and the MaxSAT path are unchanged. With the flag off, the output is byte-identical to maine52d15b.Symmetry found.
S0: nodes at the same level, new/old.
Gates.
make test-cc, including the new Parts G/H (hidden symmetries under relabelling, hypergraph-product duality, all 128 rule subsets).LP cells solve 2-9x sooner. All other cells run an identical search and finish in 0.94-1.05x the time. BB_756/864/1080 stay at 30.
Status of the new bounds: PLAUSIBLE, not reproduced. The relabelled seed-1 runs (6 h) stopped lower: 20 / 20 / 21 / 21 / 21 / 22, with every level they finished EMPTY. A 30-min control explains why: seed 1 makes both the old and the new arm 5-7x slower per level, and the new/old node ratio stays at 0.07-0.14. So the shortfall comes from the labelling, not from the feature. An independent Python implementation reproduces the orbit partitions. The stems were not renamed.
PI decisions.
-cc-aut=onbecome the CC default?🤖 Generated with Claude Code
GH-152 adoption: Tier 0 record for -cc-aut=on as the CC default
GH-157 on top of GH-152 (-cc-aut): charge / ecover node lower bounds …
GH-157 on GH-152: -cc-lb-auto (src of experiment/gh-157-cc-charge 014…
GH-157 on GH-152: -cc-lb-auto (src of experiment/gh-157-cc-charge 014…
GH-157 on GH-152: auto defaults 40 % / 100 000 (src of experiment/gh-157
GH-152: reproduction of the six new CC lower bounds (mrv order, origi…
guluchen commentedon Oct 29, 2026
GH-152 reproduction of the six new CC lower bounds: all REPRODUCED (PI decision B, 2026-10-28)
Setup:
-cc-rules=excl,pack,orbf,parity,leaf,overlap,mrv(branch on the odd row with the fewest candidates instead of the lowest-index one).-cc-aut=on, 12 h each on yfclab2, cores 72-77, 4 GB cap.mrvexplores 1.2-2.6x more nodes at the deciding levels.verified_generators=1-2, orbits=36, and 16 on TN_496), and so is the TN_496 Tanner swap map (verified as XZ-dual map).Record:
optimization/experiments/GH-152/REPRODUCTION.md(commit bc6f37b onexperiment/gh-152-tanner-aut). Stems are not renamed; that is left to the PI. The adoption PR for-cc-aut=onas the CC default is #155 (CI green, not merged).Merge main (GH-148 stab-overlap) into GH-152 adoption branch
Merge pull request #155 from guluchen/adopt/gh152-cc-aut-default
guluchen commentedon Oct 29, 2026
Stem renames for the six reproduced GH-152 CC lower bounds (PI approval 2026-10-29). Both PRs are open, CI is green, and nothing is merged.
TN_288_2_9to24 -> TN_288_2_22to24, TN_324_4_9to25 -> TN_324_4_22to25, TN_432_8_9to29 -> TN_432_8_23to29, TN_496_2_17to30 -> TN_496_2_23to30, TN_540_4_9to34 -> TN_540_4_23to34, TN_576_2_9to37 -> TN_576_2_24to37. The matrices are the same and the upper bounds are unchanged.
🤖 Generated with Claude Code
Merge main (GH-148, GH-152 -cc-aut default) into GH-157
Merge pull request #163 from guluchen/data/gh152-lb-stems