Skip to content

Conversation

yyyyx4
Copy link
Member

@yyyyx4 yyyyx4 commented Nov 1, 2024

This patch adds a class for representing symbolic fractions $\phi/d$ of elliptic-curve morphisms. As a corollary, we get left- and right-division of isogenies, which are emulated by composing with the dual and dividing out the degree. Fractional isogenies often appear in computations with endomorphism rings (e.g., $(1+\pi_q)/2$ is an endomorphism of any elliptic curve over $\mathbb F_q$ with rational $2$-torsion).

The new class is designed to fully support the EllipticCurveHom interface, albeit with extremely basic algorithms in some cases. Indeed, the goal of this patch is to establish the interface and basic functionality — any optimizations are left for future work.

Copy link

github-actions bot commented Nov 1, 2024

Documentation preview for this PR (built with commit 8044219; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch 2 times, most recently from 880b922 to 58c1817 Compare November 5, 2024 05:09
@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch 2 times, most recently from 71df211 to 65ebe4f Compare December 18, 2024 19:43
@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch from 65ebe4f to 589d4d1 Compare February 4, 2025 13:15
@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch from 9e985ab to 8044219 Compare April 23, 2025 10:04
@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch from 8044219 to 60786b1 Compare May 22, 2025 17:57
@yyyyx4 yyyyx4 force-pushed the public/fractional_isogenies branch from 60786b1 to 355df1d Compare July 15, 2025 13:28
@yyyyx4 yyyyx4 requested a review from GiacomoPope July 15, 2025 13:28
Copy link
Contributor

@GiacomoPope GiacomoPope left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments while reading, but will read more later when i have time. General thought is that this is fantastic and a welcome addition to Sage

Denominator: 2
"""
from sage.rings.integer import Integer
if not isinstance(other, (int, Integer)):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth trying to cast the value here to an Integer and return NotImplemented when we cant?

I'm thinking of the case where somehow 2 is an element of the rationals or finite field and then this fails somewhat silently


AUTHORS:

- Lorenz Panny (2024)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2025?

return self._phi.inseparable_degree() / self._domain.scalar_multiplication(self._d).inseparable_degree()


def _torsion_gens(E, EE, l, e, psi=None):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there not something appropriate we can use from the curve object itself here?

vbraun pushed a commit to vbraun/sage that referenced this pull request Jul 18, 2025
sagemathgh-38902: division of elliptic-curve morphisms
    
This patch adds a class for representing symbolic fractions $\phi/d$ of
elliptic-curve morphisms. As a corollary, we get left- and right-
division of isogenies, which are emulated by composing with the dual and
dividing out the degree. Fractional isogenies often appear in
computations with endomorphism rings (e.g., $(1+\pi_q)/2$ is an
endomorphism of any elliptic curve over $\mathbb F_q$ with rational
$2$-torsion).

The new class is designed to fully support the `EllipticCurveHom`
interface, albeit with *extremely* basic algorithms in some cases.
Indeed, the goal of this patch is to establish the interface and basic
functionality — any optimizations are left for future work.
    
URL: sagemath#38902
Reported by: Lorenz Panny
Reviewer(s): Giacomo Pope
@vbraun vbraun merged commit 8ecfa4a into sagemath:develop Jul 25, 2025
23 of 27 checks passed
@yyyyx4 yyyyx4 deleted the public/fractional_isogenies branch July 26, 2025 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants