lalitkumarj / OMSCategory

Sage Category implementation of OMS
1 stars 1 forks source link

problem with characters when conductor is not a power of p #38

Open rpollack9974 opened 11 years ago

rpollack9974 commented 11 years ago

It seems the current code can't handle characters with non-trivial tame level. The problem I guess is that "tame level" doesn't even make sense if we think of matrices as having p-adic entries (which we do). We don't need to have p-adic entries (integers suffice) but I don't have any idea how to modify the sigma0.py code.

sage: G = DirichletGroup(3*23,QQ) sage: chi = G.1 sage: chi Dirichlet character modulo 69 of conductor 23 mapping 47 |--> 1, 28 |--> -1

sage: D = OverconvergentDistributions(-1,base=Zp(3,5),character=chi)

ValueError Traceback (most recent call last)

in () ----> 1 D = OverconvergentDistributions(-Integer(1),base=Zp(Integer(3),Integer(5)),character=chi) /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/structure/factory.so in sage.structure.factory.UniqueFactory.**call** (sage/structure/factory.c:1119)() /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/structure/factory.so in sage.structure.factory.UniqueFactory.get_object (sage/structure/factory.c:1311)() /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/modular/pollack_stevens/coeffmod_OMS_space.pyc in create_object(self, version, key) 53 k, p, prec_cap, base, character, adjuster, act_on_left, dettwist = key 54 return CoeffMod_OMS_space(k, p=p, prec_cap=prec_cap, base=base, character=character, \ ---> 55 adjuster=adjuster, act_on_left=act_on_left, dettwist=dettwist) 56 57 OverconvergentDistributions = CoeffMod_OMS_factory('CoeffMod_OMS_Families_space') /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/modular/pollack_stevens/coeffmod_OMS_space.pyc in **init**(self, k, p, prec_cap, base, character, adjuster, act_on_left, dettwist, action_class) 76 character=character, adjuster=adjuster, act_on_left=act_on_left, \ 77 dettwist=dettwist, action_class=action_class, \ ---> 78 element_class=CoeffMod_OMS_element, padic=True) 79 80 def _repr_(self): /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/modular/pollack_stevens/coeffmod_space.pyc in **init**(self, k, base, character, adjuster, act_on_left, dettwist, action_class, element_class, padic) 15 self._adjuster=adjuster 16 self._dettwist=dettwist ---> 17 self._act = action_class(self, character, adjuster, act_on_left, dettwist, padic=padic) 18 self._populate_coercion_lists_(action_list=[self._act]) 19 /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/modular/pollack_stevens/coeffmod_element.pyc in **init**(self, Dk, character, adjuster, on_left, dettwist, padic) 294 self._Np = self._Np.lcm(Dk._p) 295 Action.__init__(self, Sigma0(self._Np, base_ring=Dk.base_ring().base_ring(), \ --> 296 adjuster=self._adjuster), Dk, on_left, operator.mul) 297 298 def clear_cache(self): /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/structure/factory.so in sage.structure.factory.UniqueFactory.**call** (sage/structure/factory.c:1036)() /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/structure/factory.so in sage.structure.factory.UniqueFactory.create_key_and_extra_args (sage/structure/factory.c:1974)() /Applications/sage-5.7/local/lib/python2.7/site-packages/sage/modular/pollack_stevens/sigma0.pyc in create_key(self, N, base_ring, adjuster) 138 try: 139 if not N.is_power_of(base_ring.prime()): --> 140 raise ValueError("Modulus must equal base ring prime") 141 except AttributeError: 142 raise ValueError("Base ring must be QQ, ZZ or a p-adic field") ValueError: Modulus must equal base ring prime
rharron commented 11 years ago

Yeah, I haven't thought about characters yet. But the bug that's popping up is something I noticed yesterday which seems to be that the spaces of distributions and space of modular symbols have different ideas about which Sigma0 should be acting on them. One thinks it should be Sigma0(p), the other Sigma0(Np), so which is it?

rpollack9974 commented 11 years ago

Well -- spaces of OMS don't really have an action of any matrix group. You can only literally act by things that normalize Gamma_0(Np) -- like [1,0;0,-1].

Is it that in the code, one temporarily "acts" by Sigma0(Np) when computing Hecke operators but then immediately take an average and happily land back in the space?

Wait -- what does Sigma0(Np) mean? I thought the Sigma0 matrix groups have p-adic coefficients and so it doesn't make sense to talk about divisibility of c by N (this is the problem with characters).

W

On Sun, Mar 24, 2013 at 2:39 PM, rharron notifications@github.com wrote:

Yeah, I haven't thought about characters yet. But the bug that's popping up is something I noticed yesterday which seems to be that the spaces of distributions and space of modular symbols have different ideas about which Sigma0 should be acting on them. One thinks it should be Sigma0(p), the other Sigma0(Np), so which is it?

— Reply to this email directly or view it on GitHubhttps://github.com/lalitkumarj/OMSCategory/issues/38#issuecomment-15365665 .