Skip to content

Handle characteristic-divisible fractional elliptic-curve morphisms - #42577

Open
harrshita123 wants to merge 2 commits into
sagemath:developfrom
harrshita123:fix/fractional-isogeny-scaling-factor
Open

Handle characteristic-divisible fractional elliptic-curve morphisms#42577
harrshita123 wants to merge 2 commits into
sagemath:developfrom
harrshita123:fix/fractional-isogeny-scaling-factor

Conversation

@harrshita123

Copy link
Copy Markdown
Contributor

Fixes #42576.

Problem

EllipticCurveHom_fractional.scaling_factor() divided the numerator's scaling factor by the denominator in the base field. When the characteristic divided the denominator, both values could become zero, producing an undefined 0/0.

The same case exposed two related gaps in to_isogeny_chain(): the quotient's inseparable degree was computed but not included in the resulting chain, and the ordinary characteristic-(p) kernel calculation retained too much (p)-torsion.

Changes

  • Build the quotient's inseparable factor explicitly with the appropriate Frobenius isogeny.
  • Transport geometric kernel generators to the Frobenius twist before constructing the remaining separable chain.
  • Correct the ordinary characteristic-(p) kernel generator after division by a (p)-power.
  • Determine the final post-isomorphism by evaluation when differential scaling cannot distinguish it.
  • Obtain the scaling factor from the explicit chain when the denominator is zero in the base field.
  • Add regression tests for non-scalar, supersingular, and still-inseparable quotients.

Validation

  • ruff check --config .github/workflows/ruff.toml src/sage/schemes/elliptic_curves/hom_fractional.py
  • python3 -m py_compile src/sage/schemes/elliptic_curves/hom_fractional.py
  • git diff --check

The checkout used for development does not contain a built Sage runtime, so the full Sage doctest command could not run locally. The added doctests are included for CI validation.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

None.

@harrshita123
harrshita123 force-pushed the fix/fractional-isogeny-scaling-factor branch from 54db848 to bbaa84b Compare July 24, 2026 12:13
@harrshita123
harrshita123 marked this pull request as ready for review July 24, 2026 12:14
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown

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

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.

EllipticCurveHom_fractional fails when the characteristic divides the denominator

1 participant