edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

Button to rigorously compute End(Jac(C)) #25

Closed edgarcosta closed 5 years ago

edgarcosta commented 5 years ago

Feature request from @AndrewVSutherland, which I'm paraphrasing

it would be nice if there was a "button" that would take a curve (and not require any other inputs), heuristically compute its endomorphism ring, and then certify the result, as far as I can tell not such button exists at present.

JRSijsling commented 5 years ago

I can make such a button. Is this meant for higher genus? Things are still quite suboptimal there, just sayin'. Genus 2 is fine.

AndrewVSutherland commented 5 years ago

Even just genus 2 would be very useful (I would have used it today, in fact).

On June 24, 2019 5:58:35 PM GMT+01:00, Jeroen Sijsling notifications@github.com wrote:

I can make such a button. Is this meant for higher genus? Things are still quite suboptimal there, just sayin'. Genus 2 is fine.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/edgarcosta/endomorphisms/issues/25#issuecomment-505093863

-- Sent from my Android device with K-9 Mail. Please excuse my brevity.

JRSijsling commented 5 years ago

John's function is a great start. There is infrastructure in Correspondence, line 216 of endomorphisms/endomorphisms/magma/heuristic/VerifyCorr.m. This solves the problem of a common base field and finds a base point automatically. There are still some tricks to add in genus 2.

It is important to note that the part that I wrote only considers lower bounds. I can certainly write something that verifies all heuristically found endomorphisms with the press of a button purely in Magma. However, showing that there are no more is another part of the package, with which I am not familiar. Perhaps Edgar knows more about this.

There is still an old part in Sage, see verify_representation in line 77 of endomorphisms/endomorphisms/Wrapper.py. I will update this wrapper so that we can keep working in Sage, where the other part is also available.

edgarcosta commented 5 years ago

If desired I can code the upper bound part in Magma.

JRSijsling commented 5 years ago

That would be totally awesome. Even more so if you can do it for curves over a general number field. I will still update the Sage wrapper then, also for database purposes.

JRSijsling commented 5 years ago

Today I will push automatic functions for this, both over the base and over the closure, as suggested. I will use the new that John used. All that remains are the upper bounds.

JRSijsling commented 5 years ago

All right, it is there! I also added a Cheat option to prevent extension of scalars when choosing a base point.