Opened 12 years ago

Closed 11 years ago

Last modified 8 years ago

#9384 closed enhancement (fixed)

descend_to method for elliptic curves

Reported by: ebeyerstedt Owned by: cremona
Priority: minor Milestone: sage-4.5.2
Component: elliptic curves Keywords: descend, subfield, isomorphic, elliptic curve
Cc: adeines, cremona, jeremywest Merged in: sage-4.5.2.alpha1
Authors: Erin Beyerstedt, Jeremy West Reviewers: Aly Deines
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

Given a subfield K and an elliptic curve E defined over a field L, this function determines whether there exists an elliptic curve over K which is isomorphic over L to E. If one exists, it finds it.

Attachments (2)

trac_9384.patch (2.5 KB) - added by ebeyerstedt 12 years ago.
trac_9384_update.patch (4.3 KB) - added by ebeyerstedt 12 years ago.
Replaces previous patch.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 12 years ago by ebeyerstedt

  • Status changed from new to needs_review

This has been implemented in the patch. Please review.

comment:2 Changed 12 years ago by ebeyerstedt

Note: This function does not yet work when j = 0, 1728.

Changed 12 years ago by ebeyerstedt

comment:3 Changed 12 years ago by ebeyerstedt

The update handles the cases for j=0,1728.

comment:4 Changed 12 years ago by ebeyerstedt

  • Cc adeines added

comment:5 Changed 12 years ago by ebeyerstedt

  • Cc cremona added

comment:6 Changed 12 years ago by aly.deines

  • Cc jeremywest added
  • Status changed from needs_review to needs_work

The code for handling j=0,1728 needs to be cleaned up a little. Also, this function currently does not properly handle the following case

F.<b> = QuadraticField?(23) K.<a> = F.extension(x3+5) E = EllipticCurve?(j = 1728*b).change_ring(K) E.descend_to(F)

It returns none when it should descend to the subfield F.

comment:7 Changed 12 years ago by cremona

It looks to me as though the curve returned is (sometimes) a twist of the original, rather than isomorphic -- but I have been flying all night so am not reliable!

You can check if there is an embedding of K in self.base_ring() like this:

sage: X = polygen(QQ)
sage: K.<a> = NumberField(X^4 - X^3 + 2*X^2 + X + 1)
sage: QQ.embeddings(K)
[Ring Coercion morphism:
  From: Rational Field
  To:   Number Field in a with defining polynomial x^4 - x^3 + 2*x^2 + x + 1]

comment:8 Changed 12 years ago by ebeyerstedt

  • Status changed from needs_work to needs_review

This new patch should work in general. It uses the newly implemented preimage function for number field homomorphisms. Be sure to apply the patch from #9403 first.

Changed 12 years ago by ebeyerstedt

Replaces previous patch.

comment:9 Changed 12 years ago by aly.deines

  • Status changed from needs_review to positive_review

comment:10 Changed 11 years ago by ddrake

  • Merged in set to sage-4.5.2.alpha1
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:11 Changed 11 years ago by mpatel

  • Milestone changed from sage-5.0 to sage-4.5.2

comment:12 Changed 11 years ago by mpatel

  • Reviewers set to Alyson Deines

I'm entering a guess for the Reviewer(s) field. Please correct me if I'm wrong.

comment:13 Changed 11 years ago by aly.deines

  • Reviewers changed from Alyson Deines to Aly Deines

comment:14 Changed 8 years ago by cremona

See follow-up ticket at #16456 where it is explained why the implementation here is deficient and needs fixing.

Note: See TracTickets for help on using tickets.