Sharedwww / thickness.mOpen in CoCalc
Author: William A. Stein
1
/**************************************************************************
2
thickness.m
3
William Stein
4
December 12, 1999
5
6
There is a computation that might be easy for you to make, that might
7
shed light on whether or not the topological closure of the set of modular
8
Galois representations (in the universal deformation space) contains an
9
open set. Tell me whether or not this is feasible. Start, say, with the
10
Fourier expansion mod 3 of the newform of weight two of level 11 (call it
11
w) but I want to ignore the Euler factor at 3, i.e., I want to ignore the
12
Fourier coefficents a_n where n is divisible by 3. Now look for eigenforms
13
of arbitrary weight, of level 33, whose Fourier coefficients are in Z_3 and
14
are congruent to those of w modulo 3 (ignoring the Fourier coefficents a_n
15
where n is divisible by 3). Every time you find one, RECORD its Fourier
16
expansion modulo 9 (again ignoring the Fourier coefficents a_n where n is
17
divisible by 3). Count the number of these ( Fourier expansion modulo 9
18
ignoring the Fourier coefficents a_n where n is divisible by 3) that you
19
get. Do you get 27 of them?
20
21
***********************************************************************/
22
23
24
25
26
/*
27
Step 1: Start, say, with the
28
Fourier expansion mod 3 of the newform of weight two of level 11 (call it
29
w) but I want to ignore the Euler factor at 3, i.e., I want to ignore the
30
Fourier coefficents a_n where n is divisible by 3.
31
*/
32
33
prec := 37;
34
"Precision: ", prec;
35
36
function To_pAdic(g,p,q)
37
return &+[pAdicRing(p)!(Integers()!Coefficient(g,n))*q^n
38
: n in [1..Degree(g)]];
39
end function;
40
41
R<q> := PowerSeriesRing(pAdicRing(3));
42
43
w := To_pAdic(qEigenform(ModularFactor("11k2A"),prec), 3, q);
44
"w = ", w;
45
46
/*
47
Step 2: Now look for eigenforms
48
of arbitrary weight, of level 33, whose Fourier coefficients are in Z_3 and
49
are congruent to those of w modulo 3 (ignoring the Fourier coefficents a_n
50
where n is divisible by 3).
51
*/
52
53
54
function ValPrimeTo(f,p)
55
if f eq 0 then
56
return 99999999999;
57
end if;
58
v, pos := Min([Valuation(Coefficient(f,i)) : i in [1..Degree(f)]
59
| (i mod p ne 0) and Valuation(Coefficient(f,i)) ne 0]);
60
return v;
61
end function;
62
63
function IsCongruentToW(f)
64
return ValPrimeTo(f-w,3) ge 1;
65
end function;
66
67
function pDeprive(f,p)
68
R<q> := Parent(f);
69
for i in [1..Ceiling(Degree(f)/3)] do
70
f -:= Coefficient(f,3*i)*q^(3*i);
71
end for;
72
return f;
73
end function;
74
75
function Level33Search(k1, k2)
76
R9 := PowerSeriesRing(Integers(9));
77
RZ := PowerSeriesRing(Integers());
78
nearby_forms := [R9|];
79
for k in [w : w in [k1..k2] | IsEven(w)] do
80
"k = ",k;
81
v := ZpRationalNewforms(11,k,3,prec)
82
cat ZpRationalNewforms(33,k,3,prec);
83
"v = ", v;
84
for f in v do
85
if IsCongruentToW(f) then
86
g := pDeprive(R9!(RZ!f),3);
87
Append(~nearby_forms, g);
88
"g = ",g;
89
end if;
90
end for;
91
end for;
92
return nearby_forms;
93
end function;