I am implementing a method for elliptic curves over number fields to
detect CM.   I want to distingish between E.has_cm() and
E.has_potential_cm().  The latter only depends on the j-invariant, and
will return either (False, None) or (True, (d,f)) if j(E) is the
j-invariant of the order with discriminant d*f^2 (of index f in the
maximal order with discriminant d).  The former, E.has_cm(), will only
retrun True (with (d,f) as above if in addition d is a square in
E.base_field() so that the additional endomorphisms are defined over
the base field.

With this convention, elliptic curves over Q never have CM, they can
only have potential CM (iff the j-invariant is one of the 13 famous
values).

BUT the class EllipticCurve_rational_field already has a method
has_cm() which returns the same as what I want to call
has_potential_cm() (but without the discriminant), so this is
inconsistent with what I want to do over other number fields.

The only places in the Sage library where the function has_cm() is
used (for elliptic curves over Q) are in BSD.py,   sha_tate.py and
gal_reps.py.  It would be easy to adapt those to fit if I simply
deleted the Q-specific version.  But should I do something else
instead?  Will it just confuse people to see this:

sage: E = EllipticCurve([0,0,0,0,1]); E
Elliptic Curve defined by y^2 = x^3 + 1 over Rational Field
sage: E.has_cm()
(False, None)

Since with my new code we have:

sage: K.<i> = QuadraticField(-1)
sage: E = EllipticCurve(K, [0,0,0,0,1]); E
Elliptic Curve defined by y^2 = x^3 + 1 over Number Field in i with
defining polynomial x^2 + 1
sage: E.has_cm()
(False, None)
sage: E.has_potential_cm()
(True, (-3, 1))

and

sage: K.<a> = QuadraticField(-3)
sage: E = EllipticCurve(K, [0,0,0,0,1]); E
Elliptic Curve defined by y^2 = x^3 + 1 over Number Field in a with
defining polynomial x^2 + 3
sage: E.has_cm()
(True, -3)
sage: E.has_potential_cm()
(True, (-3, 1))

John

-- 
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 http://groups.google.com/group/sage-nt.
For more options, visit https://groups.google.com/d/optout.

Reply via email to