check_note.py: exact checks for the note on Kourovka Notebook Problem 16.60
Python standard library only; deterministic output.

Per group: |G|, number k of classes, degrees, T(G), |Aut G| (expected value where known),
number of involutory automorphisms (a^2 = 1, identity included), number of equality cases
|S_a| = T(G), max |S_a| over all a and over a with a^2 != 1, number of distinct C_G(a^2),
and the non-integral twisted indicators that occur (exact rationals, else 6 decimals).

C1: |G|=1 k=1 degrees 1 T=1 |Aut|=1 (expected 1) involutory=1 equality=1 max|S|=1 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C2: |G|=2 k=2 degrees 1^2 T=2 |Aut|=1 (expected 1) involutory=1 equality=1 max|S|=2 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C3: |G|=3 k=3 degrees 1^3 T=3 |Aut|=2 (expected 2) involutory=2 equality=1 max|S|=3 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C4: |G|=4 k=4 degrees 1^4 T=4 |Aut|=2 (expected 2) involutory=2 equality=1 max|S|=4 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C5: |G|=5 k=5 degrees 1^5 T=5 |Aut|=4 (expected 4) involutory=2 equality=1 max|S|=5 max|S|(a^2!=1)=1 C_G(a^2):2 non-integral iota: none
C6: |G|=6 k=6 degrees 1^6 T=6 |Aut|=2 (expected 2) involutory=2 equality=1 max|S|=6 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C7: |G|=7 k=7 degrees 1^7 T=7 |Aut|=6 (expected 6) involutory=2 equality=1 max|S|=7 max|S|(a^2!=1)=1 C_G(a^2):2 non-integral iota: none
C8: |G|=8 k=8 degrees 1^8 T=8 |Aut|=4 (expected 4) involutory=4 equality=1 max|S|=8 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C9: |G|=9 k=9 degrees 1^9 T=9 |Aut|=6 (expected 6) involutory=2 equality=1 max|S|=9 max|S|(a^2!=1)=3 C_G(a^2):2 non-integral iota: none
C10: |G|=10 k=10 degrees 1^10 T=10 |Aut|=4 (expected 4) involutory=2 equality=1 max|S|=10 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: none
C12: |G|=12 k=12 degrees 1^12 T=12 |Aut|=4 (expected 4) involutory=4 equality=1 max|S|=12 max|S|(a^2!=1)=0 C_G(a^2):1 non-integral iota: none
C2xC2: |G|=4 k=4 degrees 1^4 T=4 |Aut|=6 (expected 6) involutory=4 equality=1 max|S|=4 max|S|(a^2!=1)=1 C_G(a^2):2 non-integral iota: none
C2xC2xC2: |G|=8 k=8 degrees 1^8 T=8 |Aut|=168 (expected 168) involutory=22 equality=1 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):16 non-integral iota: none
C3xC3: |G|=9 k=9 degrees 1^9 T=9 |Aut|=48 (expected 48) involutory=14 equality=1 max|S|=9 max|S|(a^2!=1)=3 C_G(a^2):6 non-integral iota: none
C4xC2: |G|=8 k=8 degrees 1^8 T=8 |Aut|=8 (expected 8) involutory=6 equality=1 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: none
C4xC4: |G|=16 k=16 degrees 1^16 T=16 |Aut|=96 (expected 96) involutory=28 equality=1 max|S|=16 max|S|(a^2!=1)=4 C_G(a^2):6 non-integral iota: none
S3: |G|=6 k=3 degrees 1^2 2 T=4 |Aut|=6 (expected 6) involutory=4 equality=4 max|S|=4 max|S|(a^2!=1)=1 C_G(a^2):2 non-integral iota: -1/2
D8: |G|=8 k=5 degrees 1^4 2 T=6 |Aut|=8 (expected 8) involutory=6 equality=3 max|S|=6 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: none
D10: |G|=10 k=4 degrees 1^2 2^2 T=6 |Aut|=20 (expected 20) involutory=6 equality=6 max|S|=6 max|S|(a^2!=1)=2 C_G(a^2):7 non-integral iota: -0.809017, 0.309017
D12: |G|=12 k=6 degrees 1^4 2^2 T=8 |Aut|=12 (expected 12) involutory=8 equality=4 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: -1/2, 1/2
D14: |G|=14 k=5 degrees 1^2 2^3 T=8 |Aut|=42 (expected 42) involutory=8 equality=8 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):9 non-integral iota: -0.222521, -0.900969, 0.623490
D16: |G|=16 k=7 degrees 1^4 2^3 T=10 |Aut|=32 (expected 32) involutory=16 equality=5 max|S|=10 max|S|(a^2!=1)=4 C_G(a^2):2 non-integral iota: -0.707107, 0.707107
D18: |G|=18 k=6 degrees 1^2 2^4 T=10 |Aut|=54 (expected 54) involutory=10 equality=10 max|S|=10 max|S|(a^2!=1)=4 C_G(a^2):6 non-integral iota: -0.939693, -1/2, 0.173648, 0.766044
D20: |G|=20 k=8 degrees 1^4 2^4 T=12 |Aut|=40 (expected 40) involutory=12 equality=6 max|S|=12 max|S|(a^2!=1)=4 C_G(a^2):7 non-integral iota: -0.309017, -0.809017, 0.309017, 0.809017
D24: |G|=24 k=9 degrees 1^4 2^5 T=14 |Aut|=48 (expected 48) involutory=24 equality=7 max|S|=14 max|S|(a^2!=1)=6 C_G(a^2):2 non-integral iota: -0.866025, -1/2, 0.866025, 1/2
Q8: |G|=8 k=5 degrees 1^4 2 T=6 |Aut|=24 (expected 24) involutory=10 equality=3 max|S|=6 max|S|(a^2!=1)=2 C_G(a^2):5 non-integral iota: 1/2
Q16: |G|=16 k=7 degrees 1^4 2^3 T=10 |Aut|=32 (expected 32) involutory=16 equality=5 max|S|=10 max|S|(a^2!=1)=4 C_G(a^2):2 non-integral iota: -0.707107, 0.707107
Dic12=C3x|C4: |G|=12 k=6 degrees 1^4 2^2 T=8 |Aut|=12 (expected 12) involutory=8 equality=4 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: -1/2, 1/2
A4: |G|=12 k=4 degrees 1^3 3 T=6 |Aut|=24 (expected 24) involutory=10 equality=6 max|S|=6 max|S|(a^2!=1)=2 C_G(a^2):6 non-integral iota: -1/3
S4: |G|=24 k=5 degrees 1^2 2 3^2 T=10 |Aut|=24 (expected 24) involutory=10 equality=10 max|S|=10 max|S|(a^2!=1)=2 C_G(a^2):8 non-integral iota: -1/2, -1/3
A5: |G|=60 k=5 degrees 1 3^2 4 5 T=16 |Aut|=120 (expected 120) involutory=26 equality=16 max|S|=16 max|S|(a^2!=1)=2 C_G(a^2):22 non-integral iota: -0.206011, -1/4, -1/5, 0.539345, 1/4, 1/5
S5: |G|=120 k=7 degrees 1^2 4^2 5^2 6 T=26 |Aut|=120 (expected 120) involutory=26 equality=26 max|S|=26 max|S|(a^2!=1)=2 C_G(a^2):32 non-integral iota: -1/3, -1/4, -1/5, 1/4, 1/5, 1/6
C2xS3: |G|=12 k=6 degrees 1^4 2^2 T=8 |Aut|=12 (expected 12) involutory=8 equality=4 max|S|=8 max|S|(a^2!=1)=2 C_G(a^2):2 non-integral iota: -1/2, 1/2
C3xS3: |G|=18 k=9 degrees 1^6 2^3 T=12 |Aut|=12 (expected 12) involutory=8 equality=4 max|S|=12 max|S|(a^2!=1)=3 C_G(a^2):2 non-integral iota: -1/2
S3xS3: |G|=36 k=9 degrees 1^4 2^4 4 T=16 |Aut|=72 (expected 72) involutory=22 equality=16 max|S|=16 max|S|(a^2!=1)=4 C_G(a^2):13 non-integral iota: -1/2, 1/4
C2xQ8: |G|=16 k=10 degrees 1^8 2^2 T=12 |Aut|=192 (expected 192) involutory=44 equality=3 max|S|=12 max|S|(a^2!=1)=4 C_G(a^2):5 non-integral iota: 1/2
C2xD8: |G|=16 k=10 degrees 1^8 2^2 T=12 |Aut|=64 (expected 64) involutory=28 equality=3 max|S|=12 max|S|(a^2!=1)=4 C_G(a^2):5 non-integral iota: none
C2xA4: |G|=24 k=8 degrees 1^6 3^2 T=12 |Aut|=24 (expected 24) involutory=10 equality=6 max|S|=12 max|S|(a^2!=1)=4 C_G(a^2):6 non-integral iota: -1/3
C7x|C3: |G|=21 k=5 degrees 1^3 3^2 T=9 |Aut|=42 (expected 42) involutory=8 equality=0 max|S|=7 max|S|(a^2!=1)=1 C_G(a^2):9 non-integral iota: none
AGL(1,5)=C5x|C4: |G|=20 k=5 degrees 1^4 4 T=8 |Aut|=20 (expected 20) involutory=6 equality=0 max|S|=6 max|S|(a^2!=1)=2 C_G(a^2):7 non-integral iota: -1/4
SL(2,3): |G|=24 k=7 degrees 1^3 2^3 3 T=12 |Aut|=24 (expected 24) involutory=10 equality=6 max|S|=12 max|S|(a^2!=1)=2 C_G(a^2):8 non-integral iota: -1/3, 1/2
GL(3,2): |G|=168 k=6 degrees 1 3^2 6 7 8 T=28 |Aut|=336 (expected 336) involutory=50 equality=28 max|S|=28 max|S|(a^2!=1)=2 C_G(a^2):79 non-integral iota: -1/6, -1/7, -1/8, 1/3, 1/7, 1/8

groups: 42; automorphisms checked: 1778 (involutory: 492); equality cases: 209; subgroup tables computed: 257

Examples 3.3 and 6.3:
  Q8, a: i->j->k->i (order 3): |S_a| = 2, T(Q8) = 6, (degree, iota) = [(1, '0'), (1, '0'), (1, '0'), (1, '1'), (2, '1/2')], |C_G(a^2)| = 2, T(C_G(a^2)) = 2
  GL(3,2) = PSL(2,7), a(g) = (g^T)^-1: automorphism True, inner False, |S_a| = 28 = #symmetric matrices in GL(3,2) = 28, T = 28, degrees [1, 3, 3, 6, 7, 8], |S_id| = 22; automorphisms with equality: 28, all outer involutory: True; outer involutory automorphisms: 28
  abelian groups with inversion: equality |S_a| = |G| = T(G) for all 16 abelian groups: True
  S_n with a = id: (name, |S_id|, T) = [('S3', 4, 4), ('S4', 10, 10), ('S5', 26, 26)]
  C7x|C3: T = 9, max over Aut of |S_a| = 7, equality cases: 0
  AGL(1,5)=C5x|C4: T = 8, max over Aut of |S_a| = 6, equality cases: 0
  T(G x H) = T(G) T(H) for the 8 direct products: True

ALL CHECKS PASSED
