\section{Computer checks} \label{rw:app:computer} Some of the computations in this paper were also carried out by computer. No proof depends on such a computation: in each case the argument is given in the text, and the program is a check on it. The programs are written in Python, with the library SymPy, and are in the directory \texttt{anc} of the source of this paper. They compute with matrices, for subspaces of Lie algebras. \begingroup \small \renewcommand{\arraystretch}{1.15} \begin{longtable}{@{}>{\raggedright\arraybackslash}p{.25\textwidth} >{\raggedright\arraybackslash}p{.31\textwidth} >{\raggedright\arraybackslash}p{.38\textwidth}@{}} \toprule Statement & What is checked & Program and range\\ \midrule \endfirsthead \toprule Statement & What is checked & Program and range\\ \midrule \endhead \bottomrule \endfoot Lemma~\ref{fl:lem:fixed-maximal-detectors}(2) & the primes dividing the discriminant of the invariant form on the span of the simple coroots of each standard Levi divide $|W_G|$ & \texttt{\footnotesize check\_kappa.py}; $A_n$, $B_n$, $C_n$, $D_n$ for $n\le6$, and all exceptional types\\ Lemma~\ref{rw:lem:hecke-cotangent-projections}, step~3; Lemma~\ref{fl:lem:quadric-detection}; Lemma~\ref{fl:lem:graded-morse-chart}, step~1; Lemma~\ref{rw:lem:poincare-kernel} & the rank of the pairing \eqref{fl:eq:root-hessian}, with degenerate cases as controls; the identities of the chart of the universal conic; the graded Lagrangian complement; the recurrence and the rank for a truncation in Laurent polynomials & \texttt{\footnotesize check\_transverse\_chart.py}; five blocks and orders of pole in $\mathfrak{gl}_2,\mathfrak{gl}_3,\mathfrak{gl}_4$, $66$ graded cases with initial dimension at most $10$, and the chart identities symbolically\\ \end{longtable} \endgroup