-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmaximally_ramified.m
108 lines (101 loc) · 2.87 KB
/
maximally_ramified.m
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
load "oli.m";
/* s := PassportObjects(Passports(64,13)[1])[1]; */
s := SolvableDBRead("64S9-8,4,4-g13-path14.m");
function Ramification(s)
if BelyiMapIsComputed(s) then
X<[x]> := BelyiCurve(s);
K := BaseField(X);
if Degree(K) gt 1 then
K<nu> := BaseField(X);
printf "K<nu> = %o\n", DefiningPolynomial(K);
else
printf "K = QQ\n";
end if;
phi := BelyiMap(s);
Z<[z]> := Curve(Parent(phi));
passport := Passport(s);
sigma := passport[1];
supp, ramdeg := Support(Divisor(phi));
supp1, ramdeg1 := Support(Divisor(phi-1));
printf "0,oo:\n";
printf "sigma0=%o\n", sigma[1];
printf "sigmaoo=%o\n", sigma[3];
for i := 1 to #supp do
pl := supp[i];
K := ResidueClassField(pl);
if Degree(K) gt 1 then
K<eta> := ResidueClassField(pl);
printf "\t%o\n", pl;
printf "\tK_pl = %o\n", DefiningPolynomial(K);
printf "\t\tram=%o\n", ramdeg[i];
printf "\t\tdegree=%o\n", Degree(pl);
else
printf "\t%o\n", pl;
printf "\t\tK_pl = QQ\n";
printf "\t\tram=%o\n", ramdeg[i];
printf "\t\tdegree=%o\n", Degree(pl);
end if;
end for;
printf "1:\n";
printf "sigma1=%o\n", sigma[2];
for i := 1 to #supp1 do
pl := supp1[i];
K := ResidueClassField(pl);
if Degree(K) gt 1 then
K<eta> := ResidueClassField(pl);
printf "\t%o\n", pl;
printf "\tK_pl = %o\n", DefiningPolynomial(K);
printf "\t\tram=%o\n", ramdeg1[i];
printf "\t\tdegree=%o\n", Degree(pl);
else
printf "\t%o\n", pl;
printf "\t\tK_pl = QQ\n";
printf "\t\tram=%o\n", ramdeg1[i];
printf "\t\tdegree=%o\n", Degree(pl);
end if;
end for;
return "\n";
else
return "not computed\n";
end if;
end function;
function DimOneLspaces(s)
if BelyiMapIsComputed(s) then
X<[x]> := BelyiCurve(s);
K := BaseField(X);
if Degree(K) gt 1 then
K<nu> := BaseField(X);
printf "K<nu> = %o\n", DefiningPolynomial(K);
else
printf "K = QQ\n";
end if;
phi := BelyiMap(s);
Z<[z]> := Curve(Parent(phi));
passport := Passport(s);
sigma := passport[1];
supp, ramdeg := Support(Divisor(phi));
supp1, ramdeg1 := Support(Divisor(phi-1));
all_points := supp cat supp1;
for pl in all_points do
printf "%o : %o\n", pl, ResidueClassField(pl);
end for;
return Sprintf("%o ramification points\n", #all_points);
else
return "Belyi map not computed\n";
end if;
end function;
DimOneLspaces(s);
exit;
/* for pass in passes do */
/* objs := PassportObjects(pass); */
/* for s in objs do */
/* l := Passport(s); */
/* if #l eq 1 then */
/* printf "%o: 1 triple\n", Name(s); */
/* else */
/* printf "%o: %o triples\n", Name(s), #l; */
/* end if; */
/* AnalyzeObject(s); */
/* end for; */
/* end for; */
/* exit; */