Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taking the dual of an elliptic curve isogeny raises AssertionError #37168

Closed
2 tasks done
pjbruin opened this issue Jan 26, 2024 · 2 comments · Fixed by #37175
Closed
2 tasks done

Taking the dual of an elliptic curve isogeny raises AssertionError #37168

pjbruin opened this issue Jan 26, 2024 · 2 comments · Fixed by #37175
Labels

Comments

@pjbruin
Copy link
Contributor

pjbruin commented Jan 26, 2024

Steps To Reproduce

We create an isogeny between elliptic curves over a finite field of 23^2 elements:

sage: R.<x> = GF(23)[]
sage: F.<a> = FiniteField(23^2, modulus=x^2-x+1)
sage: E0 = EllipticCurve(F, (0, 1))
sage: E1 = EllipticCurve(F, (8, 1))
sage: phi = E0.isogeny(kernel=E0((a, 0)), codomain=E1)
sage: phi.dual()

Expected Behavior

The dual of phi should be returned.

Actual Behavior

The following error is raised:

Traceback (most recent call last):
...
AssertionError: bug in dual()

Additional Information

The error is not raised when codomain=E1 is omitted.

Environment

- **Sage Version**: SageMath 10.3.beta6

Checklist

  • I have searched the existing issues for a bug report that matches the one I want to file, without success.
  • I have read the documentation and troubleshoot guide
@pjbruin pjbruin added the t: bug label Jan 26, 2024
@pjbruin
Copy link
Contributor Author

pjbruin commented Jan 26, 2024

@yyyyx4 the Git log says you wrote the relevant part of dual(), could you have a look?

@yyyyx4
Copy link
Member

yyyyx4 commented Jan 26, 2024

Interesting, thanks for reporting this. I'll have a look approximately tomorrow.

vbraun pushed a commit to vbraun/sage that referenced this issue Feb 1, 2024
…ead of just a post-isomorphism when computing dual isogeny

    
While computing the dual of an isogeny, the current code only searches
for a post-isomorphism which gives the correct scaling factor overall.
In some cases, as shown by sagemath#37168, such an isomorphism may not exist,
and we additionally have to compose with a suitable pre-isomorphism.

This resolves sagemath#37168.
    
URL: sagemath#37175
Reported by: Lorenz Panny
Reviewer(s): Giacomo Pope, Lorenz Panny
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants