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
7shed light on whether or not the topological closure of the set of modular
8Galois representations (in the universal deformation space) contains an
9open set. Tell me whether or not this is feasible. Start, say, with the
10Fourier expansion mod 3 of the newform of weight two of level 11 (call it
11w) but I want to ignore the Euler factor at 3, i.e., I want to ignore the
12Fourier coefficents a_n where n is divisible by 3. Now look for eigenforms
13of arbitrary weight, of level 33, whose Fourier coefficients are in Z_3 and
14are congruent to those of w modulo 3 (ignoring the Fourier coefficents a_n
15where n is divisible by 3). Every time you find one, RECORD its Fourier
16expansion modulo 9 (again ignoring the Fourier coefficents a_n where n is
17divisible by 3). Count the number of these ( Fourier expansion modulo 9
18ignoring the Fourier coefficents a_n where n is divisible by 3)  that you
19get. 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
33prec := 37;
34"Precision: ", prec;
35
36function To_pAdic(g,p,q)
37   return &+[pAdicRing(p)!(Integers()!Coefficient(g,n))*q^n
38            : n in [1..Degree(g)]];
39end function;
40
41R<q> := PowerSeriesRing(pAdicRing(3));
42
43w    := 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
54function 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;
61end function;
62
63function IsCongruentToW(f)
64   return ValPrimeTo(f-w,3) ge 1;
65end function;
66
67function 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;
73end function;
74
75function 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;
93end function;