q10 — prescribed automorphisms
A construction family for that does not start from a known covering. Instead of perturbing the certified 50-set, fix a of odd prime order and look only at -invariant sets. Such a set is full orbits of size together with of the nonzero fixed vectors, so — usually a very short list of possibilities, and the whole search collapses from to .
Files
| file | what it does |
|---|---|
setup.py |
the original , order-7, 1-dimensional-fixed-space instance: orbits, partner pairs, centraliser classes |
sigma_setup.py |
general builder — emits a column table plus its centraliser classes on orbits and on partner pairs |
fixed_classes.py |
centraliser classes of -subsets of the fixed vectors |
orbit_search.c |
first search, order 7 hardcoded |
orbit_search_g.c |
general , fixed space of dimension or ; also carries the randomised orbit-level search |
orbit_search_f.c |
general and general fixed space |
layer_lemma.py |
per-layer counting bound |
prime_orders.py |
which prime orders are possible at all, and what each would cost |
run_q10_checks.sh |
replay: rebuilds every artifact, runs the controls, reruns every search |
The reduction
Coverage is tracked orbit-wise. With for sums,
| source | covers |
|---|---|
| orbit | orbit |
| sums inside orbit | , |
| sums across | , |
| orbit with fixed | — a single orbit |
| fixed | |
| fixed with fixed |
Any of those sums can land on a fixed vector, which gets its own bit. Radius is exactly "every bit set", which is what the C searches decide.
Two counting bounds cut the case list before any search. has odd order, so canonically with the fixed space and the projection onto is . Call the layer. Every sum above has a forced layer, which gives
- touched layers (
prime_orders.py): the layers a solution can reach lie in , so ; - layer fill (
layer_lemma.py): a layer receiving no cross-orbit sum holds at most covered orbits (plus the internal sums when the layer is ), so if that is short of then every layer needs a cross pair and must cover them.
Controls
- Encoding. The orbit masks reproduce the flat syndrome sweep hole for hole on hundreds of random selections, for every used.
- Positive. The same code finds -invariant coverings at () and (), each re-verified or by the independent flat sweep. The family is not vacuous.
- Pruning. Rerunning , with
--noprunevisits all subsets per class and returns the same verdict. - Two implementations.
orbit_search_g.candorbit_search_f.cshare no search code and agree on every case both can run.