この日・共役類・アリグモ

 8月6日月曜日、曇り。やや風が強く涼しい。

 起きられなくて黙祷しそこねる。この日が「平日」だったことは今までなかった。と言いつつ家を出たのは正午ごろだったが。

 昼食を食べていなかったのでさすがに帰宅するころには真の空腹を感じていた。6枚切りのパンに冷凍コロッケを挟んで3枚食べる。

 PSL(2,p)の共役類を数えるめちゃめちゃ素朴なプログラム。

import numpy as np

def conv(n,p):
    d = int(n%p)
    n = (n-d)/p
    c = int(n%p)
    n = (n-c)/p
    b = int(n%p)
    n = (n-b)/p
    a = int(n%p)
    return a,b,c,d

def num(A,p):
    a=A[0][0]
    b=A[0][1]
    c=A[1][0]
    d=A[1][1]
    return  a*p**3+b*p**2+c*p+d

def twin(n,p):
    a,b,c,d=conv(n,p)
    return ((-a)%p)*p**3+((-b)%p)*p**2+((-c)%p)*p+((-d)%p)

def mat(n,p):
    a,b,c,d = conv(n,p)
    return np.array([[a,b],
                     [c,d]],dtype=int)

def inv(n,p):
    a,b,c,d = conv(n,p)
    A = np.array([[d,-b],
                  [-c,a]],dtype=int)
    return A%p

p =11

G = []
D = {}
i=0

for a in range(p):
    for b in range(p):
        for c in range(p):
            for d in range(p):
                u = a*p**3 + b*p**2 + c*p + d
                if((a*d-b*c)%p==1 and  twin(u,p) not in G):
                    G.append(u)
                    D[u] = i
                    i+=1

C = np.ones(len(G),dtype=int)
C *= -1
R = []
r = 0

for i,g in enumerate(G):
    if(C[i]==-1):
        R.append(g)
        for h in G:
            m = num((mat(h,p).dot(mat(g,p).dot(inv(h,p))))%p,p)
            if(m in G):
                C[D[m]] = r
            elif(twin(m,p) in G):
                C[D[twin(m,p)]] = r
            else:
                print("error")
        r+=1

for g in R:
    print(mat(g,p))
   
for i in range(len(R)):
    s=0  
    for c in C:
        if(i==c):
            s+=1
    print(i,s)

PSLの元をp進法で配列Gに格納して取り出して行列として復元したりするという方法。この処理は速度を向上させているのか…?

出力

[[ 0  1]
 [10  0]]
[[ 0  1]
 [10  1]]
[[ 0  1]
 [10  2]]
[[ 0  1]
 [10  3]]
[[ 0  1]
 [10  4]]
[[ 0  1]
 [10  5]]
[[ 0  1]
 [10  9]]
[[1 0]
 [0 1]]
0 55
1 110
2 60
3 132
4 132
5 110
6 60
7 1

PSL(2,11)の類等式は660=55+110+60+132+132+110+60+1で各代表元も並んでいる。
SLの元としてトレースが±2の共役類のみ3つに分離してその他は1つずつ。ちょっと観察すると奇素数pがmod 4で1か3かに応じて場合分けが必要なもののかなり一般的に共役類を知ることができる。証明をどうしよう。週末にまとめるといいつつ未着手。

 アリグモが家に侵入していた。アリグモはかなりおもしろ珍生物だと思っているが今の家に来てから屋内侵入トップランカーである。ただしハエトリグモは「アリグモ」「それ以外のハエトリグモ」として分類されているという条件付き。ハエトリグモを見分けられたら人生が少し豊かになるんだろうなと考えつつ『ハエトリグモハンドブック』を未だに手にしていないことを思い出す。