# B2 calculation

## 3154 days ago by jimlb

First we will just do $GL_2$ as we know it works in this case so it is just verifying the calculation does what we want it to.

G=GL(2,GF(3));G
 $\newcommand{\Bold}[1]{\mathbf{#1}}\text{GL}_{2}(\Bold{F}_{3})$
M=Mat(GF(3),2,2);M
 $\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{Mat}_{2\times 2}(\Bold{F}_{3})$
B1=[];

The set $B_1$ contains the matrices from $U_p$.

for z in [0..2]: B1.append(M([[0,z],[0,1]]));
B1;
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\begin{array}{rr} 0 & 0 \\ 0 & 1 \end{array}\right), \left(\begin{array}{rr} 0 & 1 \\ 0 & 1 \end{array}\right), \left(\begin{array}{rr} 0 & 2 \\ 0 & 1 \end{array}\right)\right]$

The set $B_2$ is the remaining matrix in this case.

B2=[Matrix(GF(3),[[1,0],[0,0]])];B2
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\begin{array}{rr} 1 & 0 \\ 0 & 0 \end{array}\right)\right]$

Here we just take a random element of $GL_2(\mathbb{F}_3)$.  It is important to note whether it is in $K_0(3)$ to match up the results with our expectations.

g=G.random_element();g
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rr} 1 & 1 \\ 2 & 1 \end{array}\right)$

The sets $S_1\subset B_1$ and $S_2\subset B_2$ are the sets that are "hit" by $g$.

S1=[];S2=[]
S1;
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\right]$
S2;
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\right]$
for h in G: for a in B1: for b in B1: if M(g)*a==b*M(h): if b not in S1: S1.append(b) for c in B2: if M(g)*a == c*M(h): if c not in S2: S2.append(c)
S2;
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\begin{array}{rr} 1 & 0 \\ 0 & 0 \end{array}\right)\right]$

Note we get what is expected here.  To get the other element of $B_1$, we would just consider where $B_2$ maps.  This shows our expectation is valid for this case in $GL_2$.

S1;
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(\begin{array}{rr} 0 & 1 \\ 0 & 1 \end{array}\right), \left(\begin{array}{rr} 0 & 0 \\ 0 & 1 \end{array}\right)\right]$


def coset_partition(g): S1=[]; S2=[]; S3=[]; S4=[]; for h in G: for b1 in B1: for b2 in B1: if g*b1 == b2*h: if b2 not in S1: S1.append(b2) for c in B2: if g*b1 == c*h: if c not in S2: S2.append(c) for d in B3: if g*b1 == d*h: if d not in S3: S3.append(d) for e in B4: if g*b1== e*h: if e not in S4: S4.append(e) S=[S1,S2,S3,S4]; return S
coset_partition(G[17])
 $\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[\left(\begin{array}{rrrr} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right), \left(\begin{array}{rrrr} 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right), \left(\begin{array}{rrrr} 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right), \left(\begin{array}{rrrr} 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\right], \left[\left(\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 \end{array}\right), \left(\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\right], \left[\left(\begin{array}{rrrr} 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{array}\right)\right], \left[\left(\begin{array}{rrrr} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array}\right)\right]\right]$