#11271: there is a serious bug in the documentation or code for is_surjective
for
Galois representations attached to elliptic curves
-------------------------------------+-------------------------------------
Reporter: was | Owner: cremona
Type: defect | Status: needs_review
Priority: critical | Milestone: sage-6.1
Component: elliptic curves | Resolution:
Keywords: | Merged in:
Authors: Chris Wuthrich | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/wuthrich/ticket/11271 | c3ae100155d686452e326d0dc4662a1c7378e61c
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by cremona):
Reviewer's comments (not only on the proposed changes, sorry):
1. The functions {{{_splitting_field()}}} and {{{_division_field()}}}
would be used a lot if they were more visible! Please please please open
two tickets dependent on this one to move these!
2. There are quite a few little typos in the docstrings and comments
(and at least one verbose message). Worth taking this opportunity to fix.
3. It is very dangerous to store the underlying elliptic curve as G.E
and the return it when asked since it can be changed!
{{{
sage: E = EllipticCurve('11a1')
sage: G = E.galois_representation()
sage: G.E
Elliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 over Rational
Field
sage: G.is_surjective(5)
False
sage: G.E = EllipticCurve('14a1')
sage: G
Compatible family of Galois representations associated to the Elliptic
Curve defined by y^2 + x*y + y = x^3 + 4*x - 6 over Rational Field
sage: G.is_surjective(5)
False
}}}
I don't know how to make a data field read-only, so I think the way to do
this is to return copy(E) in the function elliptic_curve().
4. G.reducible_primes() only returns a list of the primes p for which
there is a p-isogeny from E to some other curve, so ignores the CM case.
This should be corrected, or at least the documentation changed!
{{{
sage: E = EllipticCurve('27a1')
sage: E.has_cm()
True
sage: G = E.galois_representation()
sage: G.reducible_primes()
[3]
}}}
Of course it is not clear what the output should be here. We could follow
the LMFDB route (see http://www.lmfdb.org/EllipticCurve/Q/27.a3) and only
list the primes up to 37, with proper documentation of course. Otherwise
we could try to be too clever and return (in that example) [3, Mod(1,3)].
More comments to follow -- I don't trust trac not to lose all thet I have
written so far...
--
Ticket URL: <http://trac.sagemath.org/ticket/11271#comment:7>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.