# New strongly regular graphs from the server `twoorbit` lane (2026-10-11/12): analysis

Analysis lane, relaunched 2026-10-12 after a PC shutdown.
Scripts: `scripts/new_srgs_twoorbit_2026_10_11/`. Outputs: `out/new_srgs_twoorbit_2026_10_11/`. Large label/job
files can be regenerated and are .gitignored. Every srg claim below is an exact integer (or exact-float on 0/1
matrices) check of A² = kI + λA + μ(J−I−A). Every isomorphism claim compares nauty canonical forms
(`nauty-labelg` and an independent dreadnaut run, `dn_check.py`). The four rows were still "?" on Brouwer's live table
on 2026-10-12 (`out/brouwer_live_2026_10_12/`).

**Headline.** The server reported four graphs (five with the second 160 hit of 2026-10-12). Enumerating **all**
fusions of the same group actions, instead of stopping at the first one as the server does, gives **eight** pairwise
non-isomorphic graphs on four open rows:

- 3 graphs on srg(160,54,18,18),
- 1 graph on srg(232,63,14,18),
- 2 graphs on srg(261,64,14,16),
- 2 graphs on srg(280,63,14,14).

Three of the eight were not reported by the server: 160 #3, 261 #2 and 280 #2.

## §0 Verdict table

| # | parameters | sha256 of graph6 (first 16) / file | \|Aut\| and structure | construction (one line) | geometric? | new? |
|---|---|---|---|---|---|---|
| 1 | srg(160,54,18,18) #1 (server hit 1) | ac81a833841a7853 `G160.g6` | 1728 = C3 × 2⁴:(S3×S3), centre C3; orbits 16 + 144 | 2⁴:(S3×S3) × C3 on 16 cells + 3 copies of 48 transversal-flags (TomLib C3:c60:t105, or c66) | no: no 10-clique at all | yes (row "?"; no construction found) |
| 2 | srg(160,54,18,18) #2 (server hit 2, 2026-10-12) | aea444beb1e20fb5 `G160b.g6` | 1728 = C3 : (2⁴:(S3×S3)), centre 1 (not ≅ #1's group); orbits 16 + 144 | TomLib T3:25:60:105 = 2⁴:(S3×S3) on 96 + 48 + 16 | no: no 10-clique | yes |
| 3 | srg(160,54,18,18) #3 (**not on the server**) | b8b704026038b6ea `G160c.g6` | 576 = 2⁴:(S3×S3) (TomLib group itself); orbits 96 + 48 + 16 | same T3:25:60:105 action, the other fusion class | no: no 10-clique | yes |
| 4 | srg(232,63,14,18) (server) | 1329c8c0786a3866 `G232.g6` | 21168 = Γ₈ := (SL(2,8) × C7) ⋊ (⟨φ⟩ × ⟨ι⟩) ≅ GL(2,8) ⋊ C6 (derived subgroup GL(2,8)); orbits 196 + 36 | E × F₈* ∪ pairs of PG(1,8), rule (232) below | no (pg_probe.log: the 513 8-cliques do not cover the edges exactly) | yes |
| 5 | srg(261,64,14,16) #1 (server) | a617f1302d361592 `G261a.g6` | 3024 = C2 × PΓL(2,8); orbits 216 + 36 + 9 | pairs × F₈* ∪ points, product rule (variant A) | no (6804 edges in no 9-clique) | yes |
| 6 | srg(261,64,14,16) #2 (**not on the server**) | d7b9b95afd8db219 `G261b.g6` | 21168 = Γ₈ (≅ Aut #4); orbits 252 + 9 | pairs × F₈* ∪ points, quotient rule (variant B) | no (5292 edges in no 9-clique) | yes |
| 7 | srg(280,63,14,14) #1 (server) | fe5ea67d817b5855 `G280a.g6` | 3024 = C2 × PΓL(2,8); orbits 216 + 36 + 28 | pairs × F₈* ∪ E, product rule | no: no 10-clique | yes |
| 8 | srg(280,63,14,14) #2 (**not on the server**) | 8a9cbb0b9cb9dfaa `G280b.g6` | 21168 = Γ₈; orbits 252 + 28 | pairs × F₈* ∪ E, quotient rule | no: no 10-clique | yes |

The graph6 files are in `out/new_srgs_twoorbit_2026_10_11/` (`G*.g6`). The server copies are in
`out/twoorbit_hits_2026_10_11/` and have identical bytes to #1, #2 (canonical form), #4, #5 and #7.

Geometric status: graphs #1, #4, #5 and #7 are covered by `out/twoorbit_hits_2026_10_11/pg_probe.log`. The first lane's
`geom_check2.log` covers #6 and #8. `struct/structure_160bc.log` covers #2 and #3 (zero Delsarte 10-cliques).
pg(9,5,3) is known not to exist (Brouwer's comment on the 160 row), so the 160 graphs had to be non-geometric anyway.

Pairwise non-isomorphism within a row is shown by the canonical hashes (`out/new_srgs_twoorbit_2026_10_11/dn_check_six.log`,
`rerun/canon.log`, `gamma/*`). Independent invariants confirm it: |Aut|, the p-ranks below, and the counts of Hoffman
cocliques and Delsarte cliques.

| graph | rk₂(A) | rk₂(A + I) | rk₃ or rk₇ of A − rI | Delsarte cliques | Hoffman cocliques |
|---|---|---|---|---|---|
| 160 #1 | 54 | 160 | rk₃ = 60 | 0 (bound 10) | 158 (complete), 7 Aut-orbits |
| 160 #2 | 34 | 160 | rk₃ = 60 | 0 | 242 (complete), 10 orbits |
| 160 #3 | 44 | 160 | rk₃ = 60 | 0 | 186 (complete), 12 orbits |
| 232 | 232 | 64 | rk₇ = 59 | 513 8-cliques = orbits 504 + 9 | **none** (complete: CP-SAT INFEASIBLE) |
| 261 #1 | 116 | 261 | rk₇ = 87 | 46 9-cliques = orbits 36 + 9 + 1 | **none** (complete: audit enumerator, 1,552,209 nodes, `out/audit_twoorbit8_fable/cocl_more.log`; CP-SAT had returned UNKNOWN after 1800 s) |
| 261 #2 | 44 | 261 | rk₇ = 87 | 100 9-cliques = orbits 63 + 36 + 1 | 252 (complete) = orbits 126 + 126 |
| 280 #1 | 280 | 136 | rk₇ = 88 | 0 (bound 10) | ≥ 37 (orbits 36 + 1; enumeration incomplete) |
| 280 #2 | 280 | 64 | rk₇ = 88 | 0 | ≥ 253 (orbits 126 + 126, plus the 28-orbit E; incomplete) |

Correction 2026-10-12 (Fable audit, `docs/audit_twoorbit8_fable_2026_10_12.md`): this table first had a single column
"rk₂(A)" with the values 54/34/44/64/116/44/136/64. For 232 and 280 those values are rk₂(A + I): there A² ≡ I mod 2,
so A is invertible over GF(2) and rk₂(A) = v. For 160 and 261, A² ≡ 0 mod 2 and A + I has full rank. Both columns are
now given. The 261 #1 Hoffman entry was "undecided" before the audit's complete enumeration.

Logs: `pranks.log`, `struct/structure*.log`, `struct/set_orbits.log`.

## 1. Independent rebuild from the group descriptions

**Method.** `orbitals.g` builds G on ⊔ G/H_i from the TomLib table, takes the orbitals as orbits on ordered pairs, and
writes the label matrix. `fuse.py` enumerates **all** unions of symmetrised orbitals that are srg(v,k,λ,μ), using
CP-SAT with `enumerate_all_solutions`, and checks each one exactly. `canon.sh` compares canonical forms. The first lane
wrote these scripts. I re-ran them from scratch into `rerun/` and got identical `.info` files and identical solution
sets. The second 160 action (T3:25:60:105) is new in this relaunch (`run_orbitals_160b.g`, `rerun/fuse_160c.log`).

| action (TomLib) | v and orbit split | fusions found | classes (canonical hash) |
|---|---|---|---|
| L2(8):3x2, T3:31:53:54 | 232 = 168 + 36 + 28 | 3 | 1: 5bb9f44b (= server) |
| L2(8):3x2, T3:27:53:57 | 261 = 216 + 36 + 9 | 6 | **2**: 8f942e64 (= server, \|Aut\| 3024) and 6e07027b (new, \|Aut\| 21168) |
| L2(8):3x2, T3:27:53:54 | 280 = 216 + 36 + 28 | 6 | **2**: aa49a299 (= server, 3024) and 5fda3802 (new, 21168) |
| 2^4:(S3xS3), C3:c60:t105 (and c66) | 160 = 3·48 + 16 | 2 (+2) | 1: 51df48ef (= server hit 1) |
| 2^4:(S3xS3), T3:25:60:105 | 160 = 96 + 48 + 16 | 4 | **2**: b5f99f4d (= server hit 2) and 0067dada (new, \|Aut\| 576) |

**The groups and subgroups (`groups.log`, `act*.info`, `g576.log`, `c25.log`).** G = L2(8):3×2 = C2 × PΓL(2,8), of
order 3024. Write P1 for the 9 points of PG(1,8) and P2 for the 36 unordered pairs of points. Write E for the 28
conjugate pairs {e, e⁸} of points of PG(1,64) \ PG(1,8). These are the 28 "elliptic" or "imaginary" points, and they
are in bijection with the Sylow-3 normalisers.

| TomLib class | H | index | coset space |
|---|---|---|---|
| 57 | C2 × AΓL(1,8) | 9 | P1 (the centre Z = C2 acts trivially) |
| 53 | C2 × (C7:C6) = C2 × N(split torus) | 36 | P2 |
| 54 | C2 × (C9:C6) = C2 × N(non-split torus) | 28 | E |
| 27 | D14 ≤ PSL(2,8) (in class 53, Z ⊄ H) | 216 | G/D14 ≅ (G/PSL(2,8)) × P2 = C6 × P2: the pairs, in 6 copies permuted regularly by G/PSL(2,8) ≅ C6 |
| 31 | D18 ≤ PSL(2,8) (in class 54) | 168 | C6 × E |

So the three server actions are (6 copies of P2) + P2 + P1, (6 copies of P2) + P2 + E, and (6 copies of E) + E + P2.

**The concrete model behind the 21168-graphs (`gamma_family.g`, `gamma/`).** Identify the 1 + 6 copies of P2 with
P2 × F₈*. The copy c = 1 is the TomLib orbit of size 36. The 6 copies c ≠ 1 are permuted regularly by
G/PSL ≅ C6 = ⟨c ↦ c², c ↦ c⁻¹⟩ = Aut(C7). Define

Γ_q = (SL(2,q) × C_{q−1}) ⋊ (⟨φ⟩ × ⟨ι⟩),

acting on PG(1,q)-objects × F_q*. Here matrices act on the points, t ∈ C_{q−1} acts by c ↦ cω, φ is the Frobenius
(on the coordinates and c ↦ c²), and ι acts by c ↦ c⁻¹. For q = 8, |Γ₈| = 21168. The subgroup without t is
C2 × PΓL(2,8), the TomLib group.

Fusion enumeration on Γ₈ and on its t-free subgroup (`gamma/fuse_q8.log`) re-finds **all five** q=8 classes with the
same canonical hashes. All 5 match. The t-free subgroup reproduces exactly the 6 + 6 + 3 TomLib solutions. Γ₈ itself
gives only the 21168-classes. Γ₈ has the same order as Aut(#4) = Aut(#6) = Aut(#8), and every graph built as a union
of Γ₈-orbitals is Γ₈-invariant, so **Aut = Γ₈** for these three graphs. The three automorphism groups are pairwise
isomorphic (`aut_struct.log`). The derived subgroup is SL(2,8) × C7 = GL(2,8) and the quotient is C6. In short:
**Aut ≅ GL(2,8) ⋊ C6, with C6 = ⟨field automorphism⟩ × ⟨inversion of the scalars⟩**.

**|Aut| = 3024** (#5, #7): Aut = C2 × PΓL(2,8), which is exactly the TomLib group.
**1728** (#1): C3 × 2⁴:(S3×S3), where the C3 cycles the three copies and is central.
**1728** (#2): C3 : 2⁴:(S3×S3), with trivial centre. IsomorphismGroups says this group is not isomorphic to #1's.
**576** (#3): the TomLib group 2⁴:(S3×S3) itself.

### 1.1 Explicit adjacency rules (the paper's language; verified by `rules_q8.g`, `rule_family.py`)

Notation:
- ω generates F₈* and c, c′ ∈ F₈*.
- Let π, π′ be pairs of points, e, e′ elements of E, and p, p′ points.
- For two disjoint 2-sets {a,b}, {x,y} of points of PG(1,64), the cross ratio is
  χ = [a,x][b,y] / ([a,y][b,x]), with [u,v] = det(u,v). The pair {χ, χ⁻¹} is well defined.
- Two pairs of PG(1,8), or two elements of E, give χ ∈ F₈*. A pair and an element of E give χ of order dividing 9.
- d := c′/c is the quotient rule ("variant B"). d := c′c is the product rule ("variant A").

`rule_family.py --full` rebuilds the graphs from these rules alone. The canonical forms match the five q=8 classes
(`rule/rule_q4_q8.log`). Exponent m = 1 or 2 gives the same graph up to isomorphism.

- **srg(261,64,14,16)**, vertices (π, c) ∈ P2 × F₈* (252) and p ∈ P1 (9):
  - (π,c) ~ (π,c′) iff c ≠ c′. The 7 copies of one pair form a 7-clique.
  - |π ∩ π′| = 1: adjacent iff d = 1.
  - π ∩ π′ = ∅: adjacent iff d ∈ {χ, χ⁻¹}.
  - (π,c) ~ p iff p ∈ π.
  - The 9 points form a clique.
  - **Variant B gives #2 (Aut 21168). Variant A gives #1 (Aut 3024, the server graph).**
  - Valencies: 6 + 14 + 42 + 2 = 64 for (π,c), and 8 + 56 = 64 for a point.
- **srg(280,63,14,14)**, vertices (π, c) (252) and e ∈ E (28):
  - There are no same-pair edges.
  - |π ∩ π′| = 1: adjacent iff d = 1.
  - π ∩ π′ = ∅: adjacent iff d ∈ {χ^{±1}}.
  - (π,c) ~ e iff χ(π; e) is a primitive cube root of unity. These live in F₄ ⊂ F₆₄, and the count is 7 for each pair.
  - E is a coclique of size 28, which is the Hoffman bound.
  - **Variant B gives #8 and variant A gives #7.**
- **srg(232,63,14,18)**, vertices (e, c) ∈ E × F₈* (196) and π ∈ P2 (36):
  - (e,c) ~ (e′,c′) iff e ≠ e′ and c′/c ∈ {χ(e,e′)^{±1}}.
  - (e,c) ~ π iff χ(π; e) is a primitive cube root of unity.
  - π ~ π′ iff |π ∩ π′| = 1. On the 36 pairs this is the triangular graph T(9).
  - Variant B gives #4. Variant A (product) is not strongly regular here, which is why the TomLib action has only one
    class.
- **srg(160,54,18,18) #1** (`model160.g`, `rules160.g`). Take the 4×4 grid with the group
  G = {(a,b)τ^ε : sgn a = sgn b} ≤ S4 ≀ 2, where τ is the transpose. G is isomorphic to TomLib's 2⁴:(S3×S3) and is
  primitive on the 16 cells. It is **not** S4×S4; that first guess gave no srg, see `model160/`. A transversal is
  T_s = {(j, s(j))} with s ∈ A4, so there are 12 even transversals. A flag is (T_s, f) with f a cell of T_s, so there
  are 48 flags. The vertices are the 16 cells and the flags × Z3 (144).
  - Cells form a coclique, of Hoffman size 16.
  - Cell x ~ (T,f,z) iff x ∉ T and x is not collinear with f (not in its row or column).
  - (T,f,z) ~ (T′,f′,z′), with δ = z′ − z mod 3:
    - |T∩T′| = 1, f and f′ collinear, f ∉ T′ and f′ ∉ T: adjacent iff δ = 0.
    - |T∩T′| = 1, f and f′ non-collinear, neither on the other's transversal: adjacent iff δ ≠ 0.
    - |T∩T′| = 1, f ∈ T′, f′ ∉ T, f and f′ non-collinear: adjacent iff δ = 2.
    - |T∩T′| = 0, f and f′ collinear: adjacent iff δ ≠ 0.
    - All other flag pairs are non-adjacent.
  - The rule is a complete function of these invariants: 0 conflicts over all ordered pairs.
- **160 #2 and #3.** G acts on the 96 + 48 + 16 cosets of C6 (class 25), D12 (class 60) and S3×S3 (class 105). C6 lies
  in exactly one conjugate of class 60, with index 2 (`c25.log`), so the 96 = 48 flags × {±}. This is a double cover
  of the flag set. The two non-isomorphic fusions are listed in `rerun/fuse_160c.log` (orbital lists). I did not
  extract a prose rule for them.

### 1.2 Local graphs (first subconstituents; `struct/structure*.log`)

- **261 #2, local graph of a point: three eigenvalues 14¹, 6¹⁴, −2⁴⁹**, i.e. srg(64,14,6,2). This is the 8×8 rook's
  graph L₂(8), which is unique for these parameters. Concretely: the 8 other points and the 7 copies of each pair
  through p form an 8 × 8 grid.
- **232, vertices in the 36-orbit**: 5 eigenvalues. **196-orbit**: 6 eigenvalues.
- **261 #1, points**: 5 eigenvalues.
- **280 #2, E-vertices**: 8 eigenvalues.
- The other local graphs have 6 to 40 distinct eigenvalues and none is strongly regular. Full list (Aut-orbits in the
  order 160: triples, cells; 160 #3: 96, 48, 16; 261 #1: 216, 36, 9; 280 #1: 216, 36, 28): 160 #1: 34, 10;
  160 #2: 36, **6** (cells: −6, −3, 0, 3, 6, 18); 160 #3: 36, 36, 18; 232: 6, 5; 261 #1: 40, 15, 5; 261 #2: 14, 3;
  280 #1: 36, 12, 12; 280 #2: 14, 8 (`out/audit_twoorbit8_fable/invariants.log`). Correction 2026-10-12 (Fable audit):
  this line first said "every other local graph has ≥ 10 distinct eigenvalues", which is false for the cells of
  160 #2.

### 1.3 Cliques and cocliques (`struct/set_orbits.log`)

**232.** The 513 Delsarte 8-cliques split into 2 Aut-orbits:
- 9 "stars": the 8 pairs through a point, all in the T(9) part.
- 504 cliques, each of 7 vertices of E × F₈* plus 1 pair, with setwise stabiliser C7:C6.

Together they cover every edge, 252 edges once and 7056 twice. That observation alone does not exclude a partition
(the cliques through the 252 once-covered edges are forced, the rest is not decided by the counts); what excludes a
pg(7,8,2) line system is the exact cover of the 7308 edges by 261 of the 513 cliques, which is INFEASIBLE (complete)
in CP-SAT (`geom.py`), Algorithm X (`geom_check2.py`) and the audit's own CP-SAT model. There is no Hoffman 29-coclique
at all.

**261 #2.** The 100 Delsarte 9-cliques are:
- the 9 points (1);
- point p plus the 8 pairs through p with one fixed c (63);
- the 7 copies of a pair π plus its 2 points (36).

**261 #1.** The 46 Delsarte 9-cliques are the points (1), the 9 cliques of 8 copy-1 pairs through p plus p, and
36 mixed cliques.

## 2. Family (`gamma/`, `rule/`, `family/q16/`)

The vertex counts fit polynomials in q: q(q−1)(q+2)/2 (280), (q+1)(q²−q+2)/2 (261) and q(q²−q+2)/2 (232). The
parameters are those of pg(q+1, q−2, 2), pg(q, q−1, 2) and pg(q−1, q, 2). The same Γ_q construction was run as an
exhaustive fusion search:

| q | 261-type (P2×F_q* + P1) | 280-type (P2×F_q* + E) | 232-type (E×F_q* + P2) |
|---|---|---|---|
| 4 (v = 35 / 36 / 28) | **srg(35,16,6,8), 2 classes.** Variant B = the **skew-lines graph of PG(3,2)** (complement of the Grassmann graph J₂(4,2), \|Aut\| = 8!; canonical match, `rule/q4_identification.log`). Variant A: \|Aut\| 1440. Both parameters are classical. | no srg (Γ₄ and t-free subgroup, all 75 q=4 type combinations searched parameter-free, `gamma/q4/fuse_q4.log`) | no srg |
| 8 | the two new graphs #5, #6 | #7, #8 | #4 |
| 16 (v = 2057 / 2160 / 1936) | INFEASIBLE under Γ₁₆, under its t-free subgroup C2×PΓL(2,16) (5 orbits, 175 orbitals) and under Γ₁₆ without φ | INFEASIBLE (all three groups) | INFEASIBLE (all three groups) |
| 32 (v = 16401 / 16864 / 15904) | INFEASIBLE under Γ₃₂ (target parameters) | INFEASIBLE | INFEASIBLE |

Further q=16 checks:
- The TomLib-type actions of C2 × PΓL(2,16) with 2e = 8 copies (v = 1241, 1344, 1216) are INFEASIBLE in a
  parameter-free search (`family/q16/fuse.log`).
- The monomial rules d ∈ {χ^{±m}} were tested directly for every m, both variants, at q = 16. None is strongly regular
  (48 runs, `rule/rule_q16_q32.log`). Γ₃₂-invariant rules of this form at q = 32 are covered by the INFEASIBLE fusion
  verdict.
- Control: the identical code re-finds all q=8 classes and the PG(3,2) graph at q=4.

**Verdict: no infinite family in this model.**
- The 280- and 232-type rules need a primitive cube root of unity of norm 1, i.e. 3 | q+1, so q = 2^odd. That
  excludes q = 4 and 16, and q = 32 is still infeasible.
- The 261-type exists for q = 4 (classical) and q = 8 (new) only.
- The q = 8 graphs look sporadic. Their Aut = GL(2,8) ⋊ C6 uses the coincidence G/PSL(2,8) ≅ C6 ≅ Aut(F₈*), i.e.
  2e = q − 2 holds only for q = 8 among q ≥ 8.

**160 generalisation.** Natural candidates such as 2⁶:(S3)³ or 3⁴:(…) have no explicit TomLib tables, and I found no
canonical lift of the even-transversal-flag model. Not attempted beyond the identification above. I state this
plainly.

## 3. The server's single-solution limitation (new finding)

`scripts/twoorbit/to_solve.py` stops at the **first** CP-SAT solution for each (action, target). It never enumerates.
That is why the server reported 1 + 1 + 1 + 1 (+1) graphs where the same actions contain 8.

**Recommendation:** for every HIT action, run an all-solutions enumeration. `fuse.py` and `fuse_job.py` do this in
under 2 s per action here. Also consider re-enumerating the earlier multiorbit hits (576, 306, 1296, …).

## 4. Novelty

- **Brouwer live table, 2026-10-12** (`out/brouwer_live_2026_10_12/`): all four rows are "?". The comments are
  "pg(9,5,3) does not exist (no 2-graph* for line graph)", "pg(7,8,2)?", "pg(8,7,2)?" and "pg(9,6,2)?".
- **Repository.** `CHANGELOG.md`, `ARCHIVE_INDEX.md` and `docs/` mention these parameter sets only in open-row screens:
  `construction_matrix_2026_09_29.md`, `codex_open_rows_2026_09_29.csv` ("no construction verified"),
  `closures_abelian_normal_2026_10_04.md` (abelian Cayley closures, CL23 maximal) and the Cayley-UNSAT compendium.
  None of them constructs a graph.
- **Web (standard search, 2026-10-12)**, queries on each parameter set, on "pg(7,8,2)", "pg(8,7,2)" and "pg(9,6,2)",
  on PΓL(2,8)/PSL(2,8) SRG constructions, on Crnković–Švob 2024–2025, and on arXiv 2025–2026 new-SRG papers. **No
  construction of any of the four parameter sets was found.**
  - Closest items: Brouwer–Crnković–Švob, *directed* srg(63,11,8,1,2) with Aut L2(8):3 (Discrete Math. 347 (2024)
    114146), and rank-4 SRG classification (arXiv 2510.25410).
  - 2026 SRG/dSRG papers: arXiv 2608.24414 (50,21,8,9), arXiv 2604.05884 (dSRG on 60 vertices), arXiv 2603.07707 and
    arXiv 2601.09955.
  - None of these touches these rows.
- **Limits.** MathSciNet, zbMATH and the full text of Brouwer–Van Maldeghem (2022) were not searched. "New" means
  "not in Brouwer's live table and not found by these searches".

## 5. What a referee will ask (and where the answer is)

1. *Are they really srg?* Yes, with several independent checks:
   - `fuse.py` (int64 A²);
   - `dn_check.py` (pure-integer set intersections, own graph6 decoder);
   - `rule_family.py` (built from the prose rules, not from orbitals);
   - `structure.py` (exact integer spectrum).
2. *How many isomorphism classes, and is Aut the full group?* nauty `labelg` and dreadnaut canonical forms; dreadnaut
   |Aut|; GAP checks that every generator is an automorphism (`aut_struct*.log`); p-ranks. The equality Aut = Γ₈ for
   #4, #6 and #8 follows from |Γ₈| = |Aut| and Γ₈ ≤ Aut.
3. *Are they geometric / pseudo-geometric?* Not geometric (§0). Delsarte clique enumerations are complete.
4. *Computer-free description?* §1.1 gives rules in terms of cross ratios on PG(1,8) and PG(1,64) and a scalar label
   in F₈*. A referee will want a hand proof of λ, μ for the 21168-graphs. Γ₈ has rank 3–8 on each of its orbits
   (`aut_struct.log`), so a by-hand verification of the intersection numbers is feasible. It is not written yet.
5. *Relation to known graphs or switching.* There are no known graphs on these rows to switch from. Within the 160
   row, the three graphs have different 2-ranks (54, 34, 44). The 160 graphs have not been tested for
   Godsil–McKay/WQH switching relations among themselves.
6. *Family?* §2: none within the PΓL(2,q) model. The q = 4 analogue of 261 #2 is the classical PG(3,2) skew-lines graph.
7. *Completeness of the search.* Each verdict is "all fusions of this one action". There is no classification claim
   for the rows.

## 6. Logs and programs index

- `rerun/` — fresh rebuild (TomLib → orbitals → all fusions → canon), including the second 160 action.
- `gamma/fuse_q8.log`, `gamma/rules_q8.log` — Γ₈ model, rule extraction.
- `rule/rule_q4_q8.log`, `rule/crosscheck.log`, `rule/q4_identification.log` — prose rules, q=4 identification.
- `gamma/q4/`, `gamma/q16/fuse_q16*.log`, `gamma/q32/fuse_q32.log`, `family/q16/fuse.log`, `rule/rule_q16_q32.log` —
  family runs.
- `model160/` — 160 #1 transversal-flag model (`fuse160.log`, `rules160.log`). `g576.log` and `c25.log` — 2⁴:(S3×S3)
  facts.
- `aut_struct.log`, `aut_struct_160bc.log`, `pranks.log`, `struct/` — Aut, p-ranks, cliques, cocliques, local graphs.
- `dn_check_six.log` — dreadnaut |Aut| and canonical hashes of all eight.
- From the first lane (2026-10-11) and still valid: `fuse.log`, `canon_rebuild.log`, `geom.log`, `geom_check2.log`.
  `aut.log` (Sage) agrees with `aut_struct.log`.
