On Tue, Jul 5, 2016 at 3:25 PM, Rob Harron <[email protected]> wrote:
> Kiran, thanks for getting on this so quickly!
>
> Maarten and Vincent, it would be a shame to not be able to do mod p
> computations; they are pretty essential when doing anything p-adic. It is
> true that I've found several problems when working mod p, but also with Qp.
> Do note that sage only allows base rings that are fields, so that one can't
> literally work over ZZ, and also note that magma does allow finite fields, I
> wonder if William wrote that part.
I wrote the code in both Magma and Sage. It's the same algorithm with
the same shortcomings. There's no difference in what each program
allows in this regard, except the bug involving the P1list
implementation in this thread.
You can work with the modulo symbols presentation modulo p, but you
had better clearly understand what is really being computed if you
want to draw any conclusions from the results you get.
-- William
>
> Rob
>
>
> On Tuesday, July 5, 2016 at 10:23:07 AM UTC-6, Maarten Derickx wrote:
>>
>> I agree with vdelecroix that I think that it is not even guaranteed to
>> give correct results over finite fields. In for example the description of
>> the modular symbol algorithms of John Cremona in his book or those described
>> in William Stein his book they define the module of modular symbols as some
>> explicitly given Z-module (or equivalently abelian group) modulo torsion. So
>> all the algorithms assume that there is no torsion in the underling additive
>> group of your ring. The only correct way to get sensible answers without
>> reimplementing every algorithm and thinking really hard about torsion is to
>> compute first everything over Z and then base change.
>>
>>
>> On Sunday, 3 July 2016 06:42:53 UTC+2, Rob Harron wrote:
>>>
>>> Hi,
>>>
>>> I'm trying to do some computations with mod 3 modular forms and I'm
>>> running into a couple of errors.
>>>
>>> (1) An assertion error. For example,
>>>
>>> sage: chi = kronecker_character(3*34603)
>>> sage: M = ModularSymbols(chi, 2, sign=1, base_ring=GF(3))
>>> ...
>>> File
>>> "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/sage/modular/modsym/relation_matrix.py",
>>> line 126, in modS_relations
>>> assert j != -1
>>> AssertionError
>>>
>>> This appears to be something about not finding a relation that should
>>> exist between two symbols.
>>>
>>> (2) An arithmetic error. For example,
>>>
>>> sage: chi = kronecker_character(3*61379)
>>> sage: M = ModularSymbols(chi, 2, sign=1, base_ring=GF(3))
>>> ...
>>> File
>>> "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/sage/modular/modsym/relation_matrix.py",
>>> line 125, in modS_relations
>>> j, s = syms.apply_S(i)
>>> File
>>> "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/sage/modular/modsym/manin_symbol_list.py",
>>> line 1062, in apply_S
>>> k, s = self.index((self._weight-2-i, v, -u))
>>> File
>>> "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/sage/modular/modsym/manin_symbol_list.py",
>>> line 1255, in index
>>> x, s = self.normalize(x)
>>> File
>>> "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/sage/modular/modsym/manin_symbol_list.py",
>>> line 1290, in normalize
>>> u,v,s = self.__P1.normalize_with_scalar(x[1],x[2])
>>> File "sage/modular/modsym/p1list.pyx", line 1160, in
>>> sage.modular.modsym.p1list.P1List.normalize_with_scalar
>>> (/projects/sage/sage-6.10/src/build/cythonized/sage/modular/modsym/p1list.c:8566)
>>> self.__normalize(self.__N, u, v, &uu, &vv, &ss, 1)
>>> File "sage/modular/modsym/p1list.pyx", line 363, in
>>> sage.modular.modsym.p1list.c_p1_normalize_llong
>>> (/projects/sage/sage-6.10/src/build/cythonized/sage/modular/modsym/p1list.c:2997)
>>> ss[0] = <int> (arith_llong.c_inverse_mod_longlong(s*min_t, N) % ll_N)
>>> File "sage/rings/fast_arith.pyx", line 381, in
>>> sage.rings.fast_arith.arith_llong.c_inverse_mod_longlong
>>> (/projects/sage/sage-6.10/src/build/cythonized/sage/rings/fast_arith.c:5546)
>>> raise ArithmeticError("The inverse of %s modulo %s is not
>>> defined."%(a,m))
>>> ArithmeticError: The inverse of -2142142713 modulo 184137 is not defined.
>>>
>>> Does anyone know what might be causing this or if there's a workaround?
>>> Thanks.
>>>
>>> Best,
>>>
>>> Rob
>>>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-nt" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sage-nt.
> For more options, visit https://groups.google.com/d/optout.
--
William (http://wstein.org)
--
You received this message because you are subscribed to the Google Groups
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.