-
Notifications
You must be signed in to change notification settings - Fork 0
/
Automorphisms of X0(133) mod w7 over GF(2).txt
73 lines (73 loc) · 1.89 KB
/
Automorphisms of X0(133) mod w7 over GF(2).txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
M := ModularForms(133,2);
S := CuspidalSubspace(M);
//Dimension(S);
B:=Basis(S);
W := AtkinLehnerOperator(S, 7);
//W;
//Eigenvalues(W);
//Eigenspace(W, 1);
F:=[B[4] + 2*B[5] + B[6] + 2*B[7] - 2*B[8] + 3*B[9] - B[10],
B[3] - 3*B[5] - B[6] - 4*B[7] + 2*B[8] - 3*B[9],
B[2] - B[5] + B[6] + B[9],
B[1] + B[5] + 2*B[7] + B[9] - B[10],
2*B[5] - 2*B[6] + 2*B[7] + B[8] - B[11],
4*B[6] + B[7] - 4*B[8] + 4*B[9] - B[10] + 2*B[11]];
prec:=200;
L<q> := LaurentSeriesRing(Rationals(),prec);
R<[x]>:=PolynomialRing(Rationals(),6);
Bexp:=[L!qExpansion(f,prec): f in F];
eqns:=[R | ];
d:=1;
tf:=false;
while tf eq false do
d:=d+1;
mons:=MonomialsOfDegree(R,d);
monsq:=[Evaluate(mon,Bexp) : mon in mons];
V:=VectorSpace(Rationals(),#mons);
W:=VectorSpace(Rationals(),prec-10);
h:=hom<V->W | [W![Coefficient(monsq[i],j) : j in [1..(prec-10)]] : i in [1..#mons]]>;
K:=Kernel(h);
eqns:=eqns cat [ &+[Eltseq(V!k)[j]*mons[j] : j in [1..#mons] ] : k in Basis(K) ];
X:=Scheme(ProjectiveSpace(R),eqns);
if Dimension(X) eq 1 then
if IsSingular(X) eq false then
X:=Curve(ProjectiveSpace(R),eqns);
if Genus(X) eq 6 then
tf:=true;
end if;
end if;
end if;
end while;
eqns:=GroebnerBasis(ideal<R | eqns>); // Simplifying the equations.
tf:=true;
repeat
t:=#eqns;
tf:=(eqns[t] in ideal<R | eqns[1..(t-1)]>);
if tf then
Exclude(~eqns,eqns[t]);
end if;
until tf eq false;
t:=0;
repeat
t:=t+1;
tf:=(eqns[t] in ideal<R | Exclude(eqns,eqns[t])>);
if tf then
Exclude(~eqns,eqns[t]);
t:=0;
end if;
until tf eq false;
t:=0;
repeat
t:=t+1;
tf:=(eqns[t] in ideal<R | Exclude(eqns,eqns[t])>);
if tf then
Exclude(~eqns,eqns[t]);
t:=0;
end if;
until tf eq false and t eq #eqns;
X:=Curve(ProjectiveSpace(R),eqns);
//X;
Y:=ChangeRing(X,GF(2));
if IsSingular(Y) eq false then
#Automorphisms(Y);
end if;