# Referee report: "The Bannai–Munemasa–Venkov lattice method for strongly regular graphs" (draft of 9 Oct 2026) Referee: independent Fable 5.1 session, 2026-10-09 (fresh context; adversarial brief). Manuscript: `docs/paper/milgram_obstruction.tex` (784 lines, 15 pp). My own scripts and outputs are in `out/referee_milgram_fable/` (listed in §6). Nothing was committed; the paper was not edited. ## 0. Verdict **Accept with minor revision.** The mathematics is correct. I re-derived every lemma of Sections 2–4 by hand (including the 2-adic case of Lemma 2.3(3) repaired after the Codex review), re-proved the three worked cases (169_42, 96_35, 176_25) and the four short ones (616_205, 300_26, 430_39, 690_318) and the 75_32 reproduction independently, wrote my own parity scanner and my own PARI determinant check on real graphs, and recomputed every cell of Table 6.1 from the evidence logs. No false exclusion was found; no existing parameter set is killed by anything in the paper; all 47 table rows are "?" in both Brouwer snapshots held in the repository. The revisions needed are presentational (the odd-representation case must be written out as a lemma, one false sentence in Remark 4.2, a stale table snapshot, incomplete bibliography). **No row needs to be downgraded**: the odd-representation sketch on which the "second implementation" of 105_40, 112_36, 133_32, 456_195 rests is correct and I verified that the decider V3 implements exactly the (sound, necessary) conditions it states. Grades of the findings: FATAL 0, MAJOR 1, MINOR 9, EDITORIAL 8. ## 1. The main theorem and its hypotheses (Sections 2–3) Checked line by line; all correct. Notes: * **Lemma 2.1** (dual-vector identity): $VV^{\mathsf T}=eI+\kappa\Sigma\Sigma^{\mathsf T}$ is right (also when $T=e$, where $\kappa=0$); (3) and (4) are right. The identities are real identities and hold for any admissible representation, which is what makes Proposition 3.3 and Remark 3.4 sound. * **Lemma 2.2** ($H$ is a subgroup): correct; the prime-by-prime step $v_p(\mathrm{den}\,\kappa)\le 2v_p(h_1),2v_p(h_2) \Rightarrow \le v_p(h_1)+v_p(h_2)$ is right. Note that because $T\in H$ (Lemma 2.3(1)), $H=\gamma\mathbb Z$ and $\gamma$ is simply the generator of $H$; the "gcd of divisors of $T$ in $H$" formulation is correct but roundabout (EDITORIAL E1). * **Lemma 2.3(1),(2)**: correct (maximality is used exactly once, in the converse of (2)). * **Lemma 2.3(3), the repaired step $r_y\mid C$**: I re-derived all cases. $CY=T-e\in\mathbb Z$. Odd $p$, $\pi=v_p(Y)<0$: $v_p(r_y)=\lceil-\pi/2\rceil\le-\pi\le v_p(C)$. $p=2$, $\pi<0$: $v_2(r_y)=\lceil(1-\pi)/2\rceil \le-\pi$ iff $\pi\le-1$, fine. $p=2$, $\pi=0$: $C$ odd $\Rightarrow\gamma$ odd $\Rightarrow v,T$ odd $\Rightarrow e$ even from $T-e=CY$; but $v\nu=T+ne$ even with $T$ odd forces $ne$ odd, so $e$ odd. Contradiction. $p=2$, $\pi\ge1$: no 2-part in $r_y$. **The repair is complete and correct.** The last step ($e\bar x\in\langle\bar y\rangle$, $e r_y\bar x=0$) follows. * **(F1)–(F5)**: (F2) I re-derived the list of anisotropic 2-modules (orders $\le8$; $\mathbb Z/8$, $(\mathbb Z/2)^4$, $\mathbb Z/4\oplus\mathbb Z/4$, $\mathbb Z/4\oplus(\mathbb Z/2)^2$ all isotropic) and the odd-$p$ statement (exponent $p$, rank $\le2$). (F3) phases are right, including: the anisotropic plane has phase 4 for every odd $p$ (used implicitly). (F5) proof is right (each 2-adic plane with odd off-diagonal has determinant $\equiv-1\pmod4$; unit squares are $\equiv1\pmod8$). * **Theorem 3.1**: necessary conditions (i)–(v) all follow; (v) is correctly existential in $t$ and independent of the representative $Q$. **The hypothesis $b=\pm1$ is never used in the proof** (MINOR M7). * **Remark 3.4 (odd vertex norm)** — the sketch on which the C2 grade of 105_40, 112_36, 133_32, 456_195 (and the V3 column of 96_35) depends. I verified each claim: $L_0$ has index 2 (norm mod 2 is a homomorphism on an integral lattice); $v_i-v_j\in L_0$ and $2v_i\in L_0$, so for $x\in L_0^\#$ the $z_i$ are all integral or all in $\tfrac12+\mathbb Z$; in the second case $2\sigma\equiv v\pmod 2$, $\sum(2z_i)^2\equiv v\pmod 8$ (odd squares), and $Az-\theta z=B\sigma\mathbf 1$ gives $2B\sigma\in\mathbb Z$, i.e. $v\mid 2\sigma(k-\theta)$ (the sharper $2B\sigma\equiv k-\theta\pmod 2$ also holds; V3 uses the weaker one, which is still a valid necessary condition). I read `scripts/audit_milgram_fable_decider.py` `allowed_set(..., odd_half=True)` and confirmed it adds exactly the values $\tfrac{(v'j)^2(\ell-m)}{4mv\ell}+\tfrac{v}{4\ell}+\tfrac{2i}{\ell}$ over a full period with the parity filter $v'j\equiv v$, i.e. a superset of the true norm set — so a V3 "KILL" in an odd representation is a sound exclusion. The rank used is that of $L_0$ (= rank $L$), correct. **Conclusion: the four rows keep C2.** But a published version cannot rest a grade on a remark that says "only sketched here" — see MAJOR A1. ## 2. The parity corollary (Section 4) **Exact hypotheses, as I would state them.** Integral eigenvalues; $\rho\in\{r,s\}$; the *vertex lattice $L$ itself* (no overlattice) of the centred representation $G=b(A-\rho I)+cJ$ with $b=\pm v/\gcd(v,k-\rho)$, $c=-b(k-\rho)/v$; hypotheses $\nu=c-b\rho$ even (so $L$ is even) and $\ell=a|\theta-\rho|$ odd. Then $\ell L^\#\subseteq L$ (Lemma 2.1(2), since $VV^{\mathsf T}=eI$ when $T=0$), so $\det L=|L^\#/L|$ divides $\ell^n$ and is odd, and (F5) applies to $L$ directly. The relation $(A-rI)(A-sI)=\mu J$ introduces **no other primes**: the support of $\det L$ is proved from $\ell L^\#\subseteq L$ alone, not from the minimal polynomial. $\det L$ is a pure prime power iff $\ell$ is; when $\ell$ has several primes all $\equiv1\pmod 4$ (65, 425, 377 in the table) the conclusion $n\equiv0\pmod4$ still holds because every such $\Delta\equiv1\pmod 4$. When $\ell$ has a prime $\equiv3\pmod4$ the corollary gives only "$n$ even". The corollary is **airtight**; it is the lattice-theoretic content of "only primes dividing $r-s$ matter" plus the textbook congruence. **Hand re-derivations.** * $\mathrm{srg}(169,42,5,12)$: $r=3,s=-10$, $f=126$, $g=42$. $\rho=s$: $k-\rho=52$, $\gcd(169,52)=13$, $a=13$, $G=13(A+10I)-4J$, $\nu=126$ even, $\ell=169$, rank $126$. $\det L=13^j\equiv1\pmod4$ but (F5) needs $(-1)^{63}=-1$. Correct. ($\rho=r$: $G=-13(A-3I)+3J$, $\nu=42$, rank $42\equiv2$: same contradiction.) For a non-existent graph there is no determinant to compute; what is determined is only $\det L\in\{13^j\}$, and no $j$ works. (Cf. the real NL$_6(13)=$ Paley(169): I computed $\det L=13^{119}$, rank $84\equiv0\pmod4$, consistent.) * $\mathrm{srg}(391,140,39,56)$: $r=4,s=-21$, $f=322$, $g=68$. $\rho=s$: $k-\rho=161$, $\gcd(391,161)=23$, $a=17$, $G=17(A+21I)-7J$, $\nu=350$ even, $\ell=17\cdot25=425=5^2\cdot17$, rank $322\equiv2\pmod4$, both primes $\equiv1\pmod4$: killed. ($\rho=r$: $\ell=575=5^2\cdot23$, no conclusion.) Correct. * $\mathrm{srg}(625,182,45,56)$: $r=7,s=-18$, $f=442$, $g=182$. $\rho=s$: $a=25$, $G=25(A+18I)-8J$, $\nu=442$, $\ell=625$, rank $442\equiv2$: killed; $\rho=r$: $G=-25(A-7I)+7J$, $\nu=182$, $\ell=625$, rank $182\equiv2$: killed. Correct. * $\mathrm{srg}(289,54,1,12)$ (Bondarenko–Radchenko): $a=17$, $G=17(A+14I)-4J$, $\nu=234$, $\ell=289$, rank $234\equiv2$: killed — a genuine three-line second proof. Also re-checked 235_52 ($\ell=65$, $n=94$), 507_44 ($\ell=169$, $n=198$), 871_348 ($\ell=377$, $n=402$), 375_154 ($\ell=125$, $n=66$), 875_184 ($\ell=125$, $n=322$). **My own scanner** (`out/referee_milgram_fable/referee_parity.py`, own HTML parser and arithmetic, run on the 8 Oct snapshot `out/codex/supervisor_2026_10_08/brouwer_current` ($v\le1300$) and the 9 Oct snapshot `out/audit_milgram_fable/brouwer` ($v\le750$); output `parity_scan_referee.txt`): * 4538 rows parsed; 1096 existing rows ('+', '!', 'N!') with integral eigenvalues; 790 (row, $\rho$) pairs among them satisfy the hypotheses ($\nu$ even, $\ell$ odd) and are actually tested. **Kills on existing rows: 0.** * Killed complementary pairs: **21 = 20 open + 1 "−"**, exactly the paper's list (169_42, 169_70, 235_52, 289_54(−), 289_90, 289_126, 375_154, 375_170, 391_140, 507_44, 625_130/182/234/286, 841_150/210/270/330/390, 871_348, 875_184). Statuses agree between the two snapshots. * Observation worth stating in the paper: 14 of the 21 pairs are $\mathrm{NL}_m(q)$ with $q=p^e$, $p\equiv1\pmod4$ prime, $m$ odd, $p\nmid m+1$: there $n=(q+1)(q-1-m)\equiv2\pmod4$ and $\ell=q^2$, so **no such NL$_m(q)$ exists** — a uniform generalisation of Bondarenko–Radchenko's $(289,54,1,12)=\mathrm{NL}_3(17)$, and consistent with $\mathrm{NL}_{(q-1)/2}(q)=$ Paley$(q^2)$ ($m$ even) and with $\mathrm{LS}_m(q)$ ($n=m(q-1)\equiv0$). (MINOR M8) **Real-lattice control** (`referee_detL.gp`, PARI; $\det L=$ product of the nonzero Smith invariants of the integer matrix $G$, since $L\cong$ its $\mathbb Z$-row space and $L^\#\cong$ the saturation): own constructions Paley(9), (25), (49), (81), (169), $L_2(5)$, $L_2(7)$, $L_2(13)$, $T(9)$, Shrikhande, Clebsch and complement (`detL_own_constructions.txt`), plus the 189 audit graphs with $v\le130$ from `out/audit_milgram_fable/graphs/` (`detL_audit_graphs_v130.txt`): **378 + 26 records, every prime of $\det L$ divides $\ell$ in all of them; in the 156 + 10 records where the hypotheses hold, (F5) is satisfied every time; 0 violations, 0 rank mismatches.** E.g. Paley(25): $\det L=5^{15}$, rank 12; Paley(49): $7^{32}$, rank 24; $L_2(13)$ ($\rho=r$): $13^{264}$, rank 144; $T(9)$ ($\rho=s$): $3^{14}$, $\ell=63$, rank 8. ## 3. Hand-checked proofs (Section 5) * **96_35** via $(96,60,38,36)$, $G=A+4I$: $e=10$, $T=64$, $d=33$, $\kappa=9/1024$, $B=9/16$; $H=64\mathbb Z$ (16 | h from $B$, 32 | h from $\kappa h^2\in\mathbb Z$, then $9u^2\equiv 32u$ forces $u$ even); $\gamma=64$, $Y=3/2$, $r_y=2$, $C=36$; $10x=\sum z_iv_i-18(2t)y$ with $2y\in M$ gives $10D=0$; $b(\bar y,\bar y)=\tfrac12$ splits $\langle\bar y\rangle$ off $D_2$; on $\bar y^\perp\cap D_2$, $10Q\in2\mathbb Z$ and $Q\in\tfrac12\mathbb Z$ give $Q\in\mathbb Z$, phase $0/4$; $\langle 3/2\rangle$ phase 7; $D_5$ phase $0/4$; total $\{3,7\}\ne1$. **Correct.** * **176_25** via $(176,150,128,126)$: $\kappa=9/1694$, $B=9/11$, $H=154\mathbb Z$ ($154^2\cdot9/1694=126$ even), $Y=8/7$, $r_y=7$, $C=126$; $\exp D\mid70$; $10$ invertible on $D_7\Rightarrow D_7=\langle\bar y\rangle$, $q=2\cdot4/7$, $(4/7)=1$, phase 2; $D_2,D_5$ phase $0/4$; total $\{2,6\}\ne0$. **Correct.** * **169_42**: parity, see §2; the alternative constants $\gamma=130$, $Y=13/10$, $r_y=10$, $C=90$ for $A'+4I$ of the complement also check. **Correct.** * **616_205** ($\kappa=3/2299$, $\gamma=209$, $Y=56/19$, $r_y=19$, $C=57$, $D_{19}=\langle\bar y\rangle$ with $q\equiv18/19=2\cdot9/19$, phase 2, $D_{41}$ real: $\{2,6\}\ne0$), **300_26** ($\gamma=30$, $Y=10$, $r_y=1$, $C=2$, $10D=0$, phases $\{0,4\}\ne6$), **430_39** ($\gamma=43$, $Y=10$, $13D=0$, $\{0,4\}\ne2$), **690_318** via the complement ($\kappa=7/5625$, $\gamma=75$, $Y=46$, $53D=0$, $\{0,4\}\ne6$) and **75_32** ($\gamma=60$: $h=30$ fails parity since $\kappa\cdot900=11$; $Y=5/2$, $r_y=2$, $C=44$, $\{1,5\}\ne3$): **all correct**; constants agree with Codex's `out/codex/c31/targets.json`. ## 4. Table integrity (Section 6) — `referee_table_check.py`, output `table_check_referee.txt` Recomputed all 47 rows from `out/s4lat/allopen_open*.tsv`, `out/milgram_paper/rerun_v1.tsv`, `parity_rows_v1.tsv`, `out/s4lat/kills_all_xcheck.txt`, `out/audit_milgram_fable/brouwer_scan_open.tsv`, `rerun_v3.tsv`, `parity_rows_v3.tsv`, `out/codex/c31/targets.json` and my own parity test, with my own reader. * Complements, eigenvalue/multiplicity columns, orientation ($2k750$ only the 8 Oct snapshot supports this. Say so, or archive a full 9 Oct snapshot. **EDITORIAL** * E1 Define $\gamma$ as the generator of $H$ (it equals the stated gcd because $T\in H$). * E2 (F2) "All three implementations ... enumerate these by brute force": true for $p=2$ only; V1, V3, V4 hard-code the odd-$p$ list (V3 filters it for anisotropy). Reword. * E3 "1097 such rows" (lines 389, 626): both my parser and `parity_scan.txt` give 1096 existing rows with integral eigenvalues (187 '!' + 890 '+' + 19 'N!'). * E4 Table examples for H rows: the "example representation" is chosen arbitrarily among equal-rank kills (set iteration order), e.g. 96_35 shows V1 $(3,-1,3)_{33}$ while the hand proof is $(3,-1,1)_{33}$ (= $A'+4I$). Show the representation of the proof. * E5 Abstract, "No existing parameter set of the table fails": add "in any representation tested" (V1 has 71 timeouts, V3 covers $v\le400$; only P covers everything). * E6 Lemma 2.3(3): say explicitly that $v_2(r_y)=\lceil(1-\pi)/2\rceil$ and $v_p(r_y)=\lceil-\pi/2\rceil$ are the definitions unpacked; the reader otherwise has to re-derive them. * E7 Section 5.2, "the blind auditor's weaker decider admits $\langle\tfrac12\rangle$ in this representation": give the log line (V3 rerun: $(96,60,38,36)$ R a=1 c=0) so the statement is checkable. * E8 \cite{Hancock}, \cite{KRY} as in §5. ## 7. Files written by the referee (`out/referee_milgram_fable/`) * `referee_parity.py` — own parity-corollary scanner; `parity_scan_referee.txt` (0 existing kills; 20 open + 1 "−"). * `referee_detL.gp`, `run_own.gp`, `run_files.gp` — PARI Smith-normal-form determinants of centred vertex lattices; `detL_own_constructions.txt` (13 own graphs), `detL_audit_graphs_v130.txt` (189 audit graphs, 378 records, 0 violations). * `referee_table_check.py` — recomputes Table 6.1 from the logs; `table_check_referee.txt`. * `referee_counts.py`, `referee_coverage.py` — Section 7/8 numbers; `counts_referee.txt`, `coverage_referee.txt`.