`Class/Declare`( "KR_subfield", "An instance of this class represents a subfield of the field $KR$ of functions on $EX^*$ generated by the functions $x_i$ and $r_i$", ["Field","stabiliser"::list,"The list of elements of the group $G_{64}$ that act as the identity on this subfield"], ["Field","generating_sets"::list,"A list of generating sets for the subfield"], ["Field","conversion_rules"::table,"In the $(i,j)$ slot this should have a list of equations expressing the elements of generating set $i$ in terms of generating set $j$. The $(i,i)$ slots can be left unset."], ["Method","check_stabiliser","", proc(this) local A,B,F,a,T,err,H; A := {op(map(op,this["generating_sets"]))}; F := table(): for a in A do for T in G64 do err := simplify(act_AT[T](a) - a); F[a,T] := evalb(err = 0); od; od; for a in A do for T in this["stabiliser"] do if not(F[a,T]) then printf("%A is not fixed by %A\n",a,T); return false; fi; od; od; for B in this["generating_sets"] do H := sort(select(T -> (map(a -> F[a,T],{op(B)}) = {true}),G64)); if H <> this["stabiliser"] then printf("stabiliser(%A) = %A\n",B,H); return false; fi; od: return true; end ], ["Method","check_conversion","", proc(this) local i,j,n,A,B,C,R,E,e,err; A := this["generating_sets"]; n := nops(A); R := eval(this["conversion_rules"]); for i from 1 to n do for j from 1 to n do if i <> j then B := A[i]; C := A[j]; E := R[i,j]; if not(type(E,list(equation))) then printf("rule (%d,%d) is not a list of equations \n",i,j); return false; fi; if {op(map(lhs,E))} <> {op(B)} then printf("rule (%d,%d) is not a list of equations for generating set %d\n",i,j,i); return false; fi; if indets({op(map(rhs,E))}) minus {op(C)} <> {} then printf("rule (%d,%d) does not express generating set %d in terms of generating set %d\n",i,j,i,j); return false; fi; for e in E do if not(galois_check_zero(lhs(e) - rhs(e))) then printf("in rule (%d,%d), equation %A is incorrect\n",i,j,e); return false; fi; od; fi; od; od; return true; end ], ["Method","check","", proc(this) this["check_stabiliser"] and this["check_conversion"]; end ] ): KR_subfields := table(): ###################################################################### KR_subfields[ 1] := `new/KR_subfield`(): KR_subfields[ 1]["stabiliser"] := G64_subgroup_generated_by({LL,M,N,A1,A2}); KR_subfields[ 1]["generating_sets"] := [[z[1],y[2]],[s[7],s[8]],[s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [z[1] = zs[1],y[2] = ys[2]]; CR[1,3] := [z[1] = zs[1],y[2] = ys[2]]; CR[2,1] := subs(y[1] = sqrt(z[1]),[s[7] = sx[7],s[8] = sx[8]]); CR[2,3] := [s[7] = s[7], s[8] = s[8]]; CR[3,1] := subs(y[1] = sqrt(z[1]),[s[5] = sx[5], s[6] = sx[6], s[7] = sx[7],s[8] = sx[8]]); CR[3,2] := [op(solve(s_rels[2],{s[5]})),op(solve(s_rels[3],{s[6]})),s[7] = s[7],s[8] = s[8]]; KR_subfields[1]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 2] := `new/KR_subfield`(): KR_subfields[ 2]["stabiliser"] := G64_subgroup_generated_by({LL,M,N,A1}); KR_subfields[ 2]["generating_sets"] := [[z[1],y[2],r[2]],[s[2],s[7]],[s[2],s[8]],[s[2],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,4] := [z[1] = zs[1],y[2] = ys[2],r[2] = rs[2]]; CR[1,2] := factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),subs(solve(s_rels[2],{s[8]}),CR[1,4]))); CR[1,3] := factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),subs(solve(s_rels[2],{s[7]}),CR[1,4]))); CR[2,1] := subs(y[1] = sqrt(z[1]),[s[2] = sx[2],s[7] = sx[7]]); CR[2,3] := [s[2] = s[2],s[7] = factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),solve(s_rels[2],s[7])))]; CR[2,4] := [s[2] = s[2],s[7] = s[7]]; CR[3,1] := subs(y[1] = sqrt(z[1]),[s[2] = sx[2],s[8] = sx[8]]); CR[3,2] := [s[2] = s[2],s[8] = factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),solve(s_rels[2],s[8])))]; CR[3,4] := [s[2] = s[2],s[8] = s[8]]; CR[4,1] := subs(y[1] = sqrt(z[1]),[seq(s[i] = sx[i],i in [2,5,6,7,8])]); CR[4,2] := [s[2] = s[2], s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2), s[6] = (s[2]/2 + 1/s[2]/2 - 2), s[7] = s[7], s[8] = factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),solve(s_rels[2],s[8])))]; CR[4,3] := [s[2] = s[2], s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2), s[6] = (s[2]/2 + 1/s[2]/2 - 2), s[8] = s[8], s[7] = factor(subs(s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2),solve(s_rels[2],s[7])))]; KR_subfields[2]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 3] := `new/KR_subfield`(): KR_subfields[ 3]["stabiliser"] := G64_subgroup_generated_by({LL,M,N,A2}); KR_subfields[ 3]["generating_sets"] := [[z[1],y[2],r[1]],[s[1],s[7]],[s[1],s[8]],[s[1],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,4] := [z[1] = zs[1],y[2] = ys[2],r[1] = rs[1]]; CR[1,2] := factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),subs(solve(s_rels[2],{s[8]}),CR[1,4]))); CR[1,3] := factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),subs(solve(s_rels[2],{s[7]}),CR[1,4]))); CR[2,1] := subs(y[1] = sqrt(z[1]),[s[1] = sx[1],s[7] = sx[7]]); CR[2,3] := [s[1] = s[1],s[7] = factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),solve(s_rels[2],s[7])))]; CR[2,4] := [s[1] = s[1],s[7] = s[7]]; CR[3,1] := subs(y[1] = sqrt(z[1]),[s[1] = sx[1],s[8] = sx[8]]); CR[3,2] := [s[1] = s[1],s[8] = factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),solve(s_rels[2],s[8])))]; CR[3,4] := [s[1] = s[1],s[8] = s[8]]; CR[4,1] := subs(y[1] = sqrt(z[1]),[seq(s[i] = sx[i],i in [1,5,6,7,8])]); CR[4,2] := [s[1] = s[1], s[5] = (s[1]/2 + 1/s[1]/2 - 2), s[6] = 1/(s[1]/2 + 1/s[1]/2 - 2), s[7] = s[7], s[8] = factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),solve(s_rels[2],s[8])))]; CR[4,3] := [s[1] = s[1], s[5] = (s[1]/2 + 1/s[1]/2 - 2), s[6] = 1/(s[1]/2 + 1/s[1]/2 - 2), s[8] = s[8], s[7] = factor(subs(s[5] = (s[1]/2 + 1/s[1]/2 - 2),solve(s_rels[2],s[7])))]; KR_subfields[ 3]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 4] := `new/KR_subfield`(): KR_subfields[ 4]["stabiliser"] := G64_subgroup_generated_by({LL,MA1,N,A2}); KR_subfields[ 4]["generating_sets"] := [[s[3],s[5]],[s[3],s[6]],[s[3],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [s[3] = s[3],s[5] = 1/s[6]]; CR[1,3] := [s[3] = s[3],s[5] = s[5]]; CR[2,1] := [s[3] = s[3],s[6] = 1/s[5]]; CR[2,3] := [s[3] = s[3],s[6] = s[6]]; CR[3,1] := [s[3] = s[3],s[5] = s[5],s[6] = 1/s[5],s[7] = s[3]/2 + 1/s[3]/2, s[8] = -(2*(s[3]^2*s[5]+s[3]^2-s[3]*s[5]+s[3]+s[5]+1))/(s[3]^2*s[5]-s[3]^2-4*s[3]*s[5]-4*s[3]+s[5]-1)]; CR[3,2] := [s[3] = s[3],s[5] = 1/s[6],s[6] = s[6],s[7] = s[3]/2 + 1/s[3]/2, s[8] = (2*(s[3]^2*s[6]+s[3]^2+s[3]*s[6]-s[3]+s[6]+1))/(s[3]^2*s[6]-s[3]^2+4*s[3]*s[6]+4*s[3]+s[6]-1)]; KR_subfields[ 4]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 5] := `new/KR_subfield`(): KR_subfields[ 5]["stabiliser"] := G64_subgroup_generated_by({LL,MA2,N,A1}); KR_subfields[ 5]["generating_sets"] := [[s[4],s[5]],[s[4],s[6]],[s[4],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [s[4] = s[4],s[5] = 1/s[6]]; CR[1,3] := [s[4] = s[4],s[5] = s[5]]; CR[2,1] := [s[4] = s[4],s[6] = 1/s[5]]; CR[2,3] := [s[4] = s[4],s[6] = s[6]]; CR[3,1] := [s[4] = s[4],s[5] = s[5],s[6] = 1/s[5],s[8] = s[4]/2 + 1/s[4]/2, s[7] = (2*(s[4]^2*s[5]+s[4]^2+s[4]*s[5]-s[4]+s[5]+1))/(s[4]^2*s[5]-s[4]^2+4*s[4]*s[5]+4*s[4]+s[5]-1)]; CR[3,2] := [s[4] = s[4],s[5] = 1/s[6],s[6] = s[6],s[8] = s[4]/2 + 1/s[4]/2, s[7] = -(2*(s[4]^2*s[6]+s[4]^2-s[4]*s[6]+s[4]+s[6]+1))/(s[4]^2*s[6]-s[4]^2-4*s[4]*s[6]-4*s[4]+s[6]-1)]; KR_subfields[ 5]["conversion_rules"] := eval(CR): KR_subfields[ 5]["check_stabiliser"]; KR_subfields[ 5]["check_conversion"]; ###################################################################### KR_subfields[ 6] := `new/KR_subfield`(): KR_subfields[ 6]["stabiliser"] := G64_subgroup_generated_by({LL,N,A2}); KR_subfields[ 6]["generating_sets"] := [[y[1],r[1]],[y[1],y[2],r[1]],[s[1],s[3]],[s[1],s[3],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [y[1] = y[1],r[1] = r[1]]; CR[1,3] := [y[1] = ys[1],r[1] = rs[1]]; CR[1,4] := [y[1] = ys[1],r[1] = rs[1]]; CR[2,1] := [y[1] = y[1],y[2] = y2r[1],r[1] = r[1]]; CR[2,3] := [y[1] = ys[1],y[2] = (sqrt(2) - (s[1]+1)^2/(s[1]-1)^2/sqrt(2)),r[1] = rs[1]]; CR[2,4] := [y[1] = ys[1],y[2] = ys[2],r[1] = rs[1]]; CR[3,1] := [s[1] = sx[1],s[3] = sx[3]]; CR[3,2] := [s[1] = sx[1],s[3] = sx[3]]; CR[3,4] := [s[1] = s[1],s[3] = s[3]]; CR[4,1] := subs(y[2] = y2r[1],[seq(s[i] = sx[i],i in [1,3,5,6,7,8])]); CR[4,2] := [seq(s[i] = sx[i],i in [1,3,5,6,7,8])]; CR[4,3] := [s[1] = s[1], s[3] = s[3], s[5] = (s[1]/2 + 1/s[1]/2 - 2), s[6] = 1/(s[1]/2 + 1/s[1]/2 - 2), s[7] = s[3]/2 + 1/s[3]/2, s[8] = -(2*(s[1]^2*s[3]^2-s[1]^2*s[3]-2*s[1]*s[3]^2+s[1]^2+6*s[1]*s[3]+s[3]^2-2*s[1]-s[3]+1))/ (s[1]^2*s[3]^2-4*s[1]^2*s[3]-6*s[1]*s[3]^2+s[1]^2+8*s[1]*s[3]+s[3]^2-6*s[1]-4*s[3]+1) ]; KR_subfields[ 6]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 7] := `new/KR_subfield`(): KR_subfields[ 7]["stabiliser"] := G64_subgroup_generated_by({LL,N,A1}); KR_subfields[ 7]["generating_sets"] := [[y[1],r[2]],[y[1],y[2],r[2]],[s[2],s[4]],[s[2],s[4],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [y[1] = y[1],r[2] = r[2]]; CR[1,3] := [y[1] = act_AT[L](ys[1]),r[2] = rs[2]]; CR[1,4] := [y[1] = act_AT[L](ys[1]),r[2] = rs[2]]; CR[2,1] := [y[1] = y[1],y[2] = y2r[2],r[2] = r[2]]; CR[2,3] := [y[1] = act_AT[L](ys[1]),y[2] = -(sqrt(2) - (s[2]+1)^2/(s[2]-1)^2/sqrt(2)),r[2] = rs[2]]; CR[2,4] := [y[1] = act_AT[L](ys[1]),y[2] = ys[2],r[2] = rs[2]]; CR[3,1] := [s[2] = sx[2],s[4] = sx[4]]; CR[3,2] := [s[2] = sx[2],s[4] = sx[4]]; CR[3,4] := [s[2] = s[2],s[4] = s[4]]; CR[4,1] := subs(y[2] = y2r[2],[seq(s[i] = sx[i],i in [2,4,5,6,7,8])]); CR[4,2] := [seq(s[i] = sx[i],i in [2,4,5,6,7,8])]; CR[4,3] := [s[2] = s[2], s[4] = s[4], s[5] = 1/(s[2]/2 + 1/s[2]/2 - 2), s[6] = (s[2]/2 + 1/s[2]/2 - 2), s[8] = s[4]/2 + 1/s[4]/2, s[7] = -(2*(s[2]^2*s[4]^2-s[2]^2*s[4]-2*s[2]*s[4]^2+s[2]^2+6*s[2]*s[4]+s[4]^2-2*s[2]-s[4]+1))/ (s[2]^2*s[4]^2-4*s[2]^2*s[4]-6*s[2]*s[4]^2+s[2]^2+8*s[2]*s[4]+s[4]^2-6*s[2]-4*s[4]+1) ]; KR_subfields[ 7]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 8] := `new/KR_subfield`(): KR_subfields[ 8]["stabiliser"] := G64_subgroup_generated_by({N,A2}); KR_subfields[ 8]["generating_sets"] := [[y[1],x[1],r[1]],[y[1],y[2],x[1],r[1]],[t[1],t[3]],[t[1],t[3],s[1],s[3],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [y[1] = y[1],x[1] = x[1],r[1] = r[1]]; CR[1,3] := [y[1] = yt[1],x[1] = xt[1],r[1] = rt[1]]; CR[1,4] := [y[1] = yt[1],x[1] = xt[1],r[1] = rt[1]]; CR[2,1] := [y[1] = y[1],y[2] = y2r[1],x[1] = x[1],r[1] = r[1]]; CR[2,3] := [y[1] = yt[1],y[2] = (t[1]^2*t[3]^2-6*t[1]*t[3]+1)/(t[1]*t[3]-1)^2/sqrt(2),x[1] = xt[1],r[1] = rt[1]]; CR[2,4] := [y[1] = yt[1],y[2] = (t[1]^2*t[3]^2-6*t[1]*t[3]+1)/(t[1]*t[3]-1)^2/sqrt(2),x[1] = xt[1],r[1] = rt[1]]; CR[3,1] := [t[1] = tx[1],t[3] = tx[3]]; CR[3,2] := [t[1] = tx[1],t[3] = tx[3]]; CR[3,4] := [t[1] = t[1],t[3] = t[3]]; CR[4,1] := [t[1] = tx[1],t[3] = tx[3],op(subs(y[2] = y2r[1],[seq(s[i] = sx[i],i in [1,3,5,6,7,8])]))]; CR[4,2] := [t[1] = tx[1],t[3] = tx[3],seq(s[i] = sx[i],i in [1,3,5,6,7,8])]; CR[4,3] := [t[1] = t[1],t[3] = t[3],s[1] = st[1],s[3] = st[3],s[5] = st[5],s[6] = 1/st[5],s[7] = st[7], s[8] = -(2*(t[1]^4*t[3]^2-t[1]^3*t[3]^3+t[1]^2*t[3]^4-2*t[1]^3*t[3]+6*t[1]^2*t[3]^2-2*t[1]*t[3]^3+t[1]^2-t[1]*t[3]+t[3]^2))/ (t[1]^4*t[3]^2-4*t[1]^3*t[3]^3+t[1]^2*t[3]^4-6*t[1]^3*t[3]+8*t[1]^2*t[3]^2-6*t[1]*t[3]^3+t[1]^2-4*t[1]*t[3]+t[3]^2) ]; KR_subfields[ 8]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[ 9] := `new/KR_subfield`(): KR_subfields[ 9]["stabiliser"] := G64_subgroup_generated_by({LLN,A1}); KR_subfields[ 9]["generating_sets"] := [[y[1],x[2],r[2]],[y[1],y[2],x[2],r[2]],[t[2],t[4]],[t[2],t[4],s[2],s[4],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [y[1] = y[1],x[2] = x[2],r[2] = r[2]]; CR[1,3] := [y[1] = act_AT[L](yt[1]),x[2] = xt[2],r[2] = rt[2]]; CR[1,4] := [y[1] = act_AT[L](yt[1]),x[2] = xt[2],r[2] = rt[2]]; CR[2,1] := [y[1] = y[1],y[2] = y2r[2],x[2] = x[2],r[2] = r[2]]; CR[2,3] := [y[1] = act_AT[L](yt[1]),y[2] = -(t[2]^2*t[4]^2-6*t[2]*t[4]+1)/(t[2]*t[4]-1)^2/sqrt(2),x[2] = xt[2],r[2] = rt[2]]; CR[2,4] := [y[1] = act_AT[L](yt[1]),y[2] = -(t[2]^2*t[4]^2-6*t[2]*t[4]+1)/(t[2]*t[4]-1)^2/sqrt(2),x[2] = xt[2],r[2] = rt[2]]; CR[3,1] := [t[2] = tx[2],t[4] = tx[4]]; CR[3,2] := [t[2] = tx[2],t[4] = tx[4]]; CR[3,4] := [t[2] = t[2],t[4] = t[4]]; CR[4,1] := [t[2] = tx[2],t[4] = tx[4],op(subs(y[2] = y2r[2],[seq(s[i] = sx[i],i in [2,4,5,6,7,8])]))]; CR[4,2] := [t[2] = tx[2],t[4] = tx[4],seq(s[i] = sx[i],i in [2,4,5,6,7,8])]; CR[4,3] := [t[2] = t[2],t[4] = t[4],s[2] = st[2],s[4] = st[4],s[5] = 1/st[6],s[6] = st[6],s[8] = st[8], s[7] = -(2*(t[2]^4*t[4]^2-t[2]^3*t[4]^3+t[2]^2*t[4]^4-2*t[2]^3*t[4]+6*t[2]^2*t[4]^2-2*t[2]*t[4]^3+t[2]^2-t[2]*t[4]+t[4]^2))/ (t[2]^4*t[4]^2-4*t[2]^3*t[4]^3+t[2]^2*t[4]^4-6*t[2]^3*t[4]+8*t[2]^2*t[4]^2-6*t[2]*t[4]^3+t[2]^2-4*t[2]*t[4]+t[4]^2) ]; KR_subfields[ 9]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[10] := `new/KR_subfield`(): KR_subfields[10]["stabiliser"] := G64_subgroup_generated_by({LL,M,N}); KR_subfields[10]["generating_sets"] := [[z[1],y[2],r[1],r[2]],[s[1],s[2],s[7]],[s[1],s[2],s[8]],[s[1],s[2],s[5],s[6],s[7],s[8]]]; CR := table(): CR[1,2] := [z[1] = 2*(s[1]-1)^2/(s[1]+1)^2*(s[7]-1)/(s[7]+1),y[2] = (s[1]^2-6*s[1]+1)/(s[1]-1)^2/sqrt(2),r[1] = rs[1],r[2] = rs[2]]; CR[1,3] := [z[1] = 2*(s[2]-1)^2/(s[2]+1)^2*(s[8]-1)/(s[8]+1),y[2] = (s[1]^2-6*s[1]+1)/(s[1]-1)^2/sqrt(2),r[1] = rs[1],r[2] = rs[2]]; CR[1,4] := [z[1] = zs[1],y[2] = ys[2],r[1] = rs[1],r[2] = rs[2]]; CR[2,1] := subs(y[1] = sqrt(z[1]),[s[1] = sx[1],s[2] = sx[2],s[7] = sx[7]]); CR[2,3] := [s[1] = s[1],s[2] = s[2],s[7] = -(2*s[2]^2*s[8]-s[2]^2-4*s[2]*s[8]+6*s[2]+2*s[8]-1)/(s[2]^2*s[8]-2*s[2]^2-6*s[2]*s[8]+4*s[2]+s[8]-2)]; CR[2,4] := [s[1] = s[1],s[2] = s[2],s[7] = s[7]]; CR[3,1] := subs(y[1] = sqrt(z[1]),[s[1] = sx[1],s[2] = sx[2],s[8] = sx[8]]); CR[3,2] := [s[1] = s[1],s[2] = s[2],s[8] = -(2*s[1]^2*s[7]-s[1]^2-4*s[1]*s[7]+6*s[1]+2*s[7]-1)/(s[1]^2*s[7]-2*s[1]^2-6*s[1]*s[7]+4*s[1]+s[7]-2)]; CR[3,4] := [s[1] = s[1],s[2] = s[2],s[8] = s[8]]; CR[4,1] := subs(y[1] = sqrt(z[1]),[seq(s[i] = sx[i],i in [1,2,5,6,7,8])]); CR[4,2] := [s[1] = s[1],s[2] = s[2],s[5] = (s[1]/2 + 1/s[1]/2 - 2),s[6] = (s[2]/2 + 1/s[2]/2 - 2),s[7] = s[7], s[8] = -(2*s[1]^2*s[7]-s[1]^2-4*s[1]*s[7]+6*s[1]+2*s[7]-1)/(s[1]^2*s[7]-2*s[1]^2-6*s[1]*s[7]+4*s[1]+s[7]-2)]; CR[4,3] := [s[1] = s[1],s[2] = s[2],s[5] = (s[1]/2 + 1/s[1]/2 - 2),s[6] = (s[2]/2 + 1/s[2]/2 - 2),s[8] = s[8], s[7] = -(2*s[2]^2*s[8]-s[2]^2-4*s[2]*s[8]+6*s[2]+2*s[8]-1)/(s[2]^2*s[8]-2*s[2]^2-6*s[2]*s[8]+4*s[2]+s[8]-2)]; KR_subfields[10]["conversion_rules"] := eval(CR): ###################################################################### KR_subfields[11] := `new/KR_subfield`(): KR_subfields[11]["stabiliser"] := G64_subgroup_generated_by({M,N}); KR_subfields[11]["generating_sets"] := [[z[1],y[2],x[1],r[1],r[2]],[s[1],s[2],u[1]]]; CR := table(): CR[1,2] := [z[1] = 2*(1-s[1])^2/(1+s[1])^2*(1-4*s[1]/u[1]^2), y[2] = (s[1]^2-6*s[1]+1)/(s[1]-1)^2/sqrt(2), x[1] = sqrt(8)/(1-1/s[1])/u[1], r[1] = rs[1],r[2] = rs[2]]; CR[2,1] := [s[1]=sx[1],s[2]=sx[2],u[1] = -sqrt(8)*x[1]/(1-r[1]^2*z[1])/(1-sqrt(2)*r[1])]; KR_subfields[11]["conversion_rules"] := eval(CR):