Commit
2 years ago
gh-36592: Add pull_from_function_field to curves <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> For an algebraic curve C, `C.pull_from_function_field()` provides the inverse map of `C.function()` between the fraction field of the coordinate ring of C and the abstract function field of C. This tightens the integration of the two isomorphic fields. Elements of the fraction field of the coordinate ring of C is represented by elements of the fraction field of the coordinate ring of the ambient affine or projective space, for user's convenience. This is the missing feature as discussed in https://groups.google.com/g/sage-support/c/Axkaex63f8w/m/wKL0TzmDAwAJ The problem there can be solved by ```sage sage: P2.<x,y,z> = ProjectiveSpace(QQ, 2) sage: f = 2*x^5 - 4*x^3*y*z + x^2*y*z^2 + 2*x*y^3*z + 2*x*y^2*z^2+ y^5 sage: C = Curve(f) sage: K = C.function(x/y).differential().divisor() # canonical divisor sage: basis = (-K).basis_function_space() sage: Basis = [C.pull_from_function_field(f) for f in basis] sage: phi = C.hom(Basis, P2) sage: D = phi.image() # conic sage: D.degree() 2 sage: D Closed subscheme of Projective Space of dimension 2 over Rational Field defined by: x^2 + x*y + 2*y*z ``` <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: https://github.com/sagemath/sage/pull/36592 Reported by: Kwankyu Lee Reviewer(s): John H. Palmieri, Kwankyu Lee
Author
Release Manager
Loading