# Code for "Cayley graphs of abelian groups and their quantum symmetries" Python 3, standard library only. Each script writes its results to a `.log` file (included). | Script | What it does | Paper | |---|---|---| | `schur.py` | Tools: abelian groups, coherent closure (Schur ring generated by S), automorphism counting | all | | `linked.py` | Linked pairs of characters on Z_N; checks Lemma 3.1 and Theorem 3.4, with and without fixed points; prime powers; coprime products | Sections 2, 3, 5 | | `dihedral.py` | Proportion of Cayley graphs with saturated spectrum, and of dihedral type | Section 4 (table) | | `normal.py` | Circulant graphs: G(X) = D_n if and only if dihedral type, for n < 15 | Section 4 | | `primepower.py` | Circulant graphs with p^n vertices: checks the dichotomy of Theorem 5.3 for every S | Section 5 (table) | | `rigid.py` | Commutative relations (Lemmas 6.2, 6.3, coherent versions of lemmas of Schmidt); checks that all the relations are commutative under the bounds of Theorems 8.1 and 8.2, for the cyclotomic schemes on Z_N | Sections 6, 8 | | `transitive.py` | Transitive groups acting on cosets (PSL(2,7), A_5, S_5, S_4): fixed points, bound of Theorem 8.1, commutative relations, graphs having the commutant as coherent algebra | Section 8 | | `pseudocyclic.py` | Indistinguishing number c of a scheme: c = k-1 for the cyclotomic schemes over Z_p, c <= km in general, test of the bound N > 2(k-1)(c-1)+2 (Theorem 8.3), and direct check of the proofs of Theorems 8.1 and 8.2 | Section 8 | | `schmidt.py` | Schmidt alternative (Conjecture 8.4): every circulant graph with N <= 43 has 2 automorphisms with disjoint supports (Q), or all its relations commutative (R), except the Paley graphs with 29, 37, 41 vertices | Sections 3, 8 (table) | | `bichon.py` | Quantum group of Bichon: decides G*(X) = G(X) for all the circulant graphs with N <= 20, via Propositions 7.1, 7.3 and Lemma 6.3; checks Theorems 7.2, 7.5 | Section 7 | | `examples.py` | The explicit graphs quoted in the paper: type and automorphism group | Sections 1, 3, 5 | Run with `python3 linked.py 400`, `python3 dihedral.py`, `python3 schmidt.py 2 43`, and so on. Most scripts run in seconds to minutes, the longest job being the census of `schmidt.py` at the largest values of N.