Ticket #7956 (closed defect: fixed)
constructing a scheme morphism to an affine curve
|Reported by:||wjp||Owned by:||AlexGhitza|
|Report Upstream:||N/A||Reviewers:||Marco Streng|
|Authors:||Michael Orlitzky||Merged in:||sage-5.3.beta2|
Description (last modified by mstreng) (diff)
Ronald van Luijk encountered the following problem:
sage: S.<p,q> = QQ sage: A1.<r> = AffineSpace(QQ,1) sage: A1_emb = Curve(p-2) sage: type(A1_emb) <class 'sage.schemes.plane_curves.affine_curve.AffineCurve_generic'> sage: g = A1.hom([2,r],A1_emb) TypeError: _point_morphism_class() takes exactly 1 non-keyword argument (3 given)
This is fixed in current Sage (e.g. 5.0.prealpha1). A doctest is added by
Here's a description of the other patch, which fixes an apparent oversight in the class hierarchy.
We browsed through the schemes module a bit, and the functionality for a morphism to an affine curve does seem to exist through functions such as AlgebraicScheme_subscheme_affine._point_morphism_class(), but is not accessible since AlgebraicScheme_subscheme_affine is not a superclass of AffineCurve_generic. Comparing it to the projective case, AlgebraicScheme_subscheme_projective _is_ a superclass of ProjectiveCurve_generic.
Is this a simple oversight in the class hierarchy for AffineCurve_generic, or is there a more fundamental reason why this does not yet work?
wjp made a patch (for sage 4.2) that makes the class hierarchy for affine curves similar to that of projective curves, but would appreciate if someone familiar with the schemes module could take a look since it is a rather invasive change:
The patch also changes the constructor of SchemeMorphism_on_points_affine_space to expect a number of polynomials equal to the dimension of the ambient space instead of the dimension of the curve/subscheme, analogous to a change to SchemeMorphism_on_points_projective_space by David Kohel from 2007.
- Cc mjo added
- Status changed from new to needs_review
- Authors set to Michael Orlitzky
- Status changed from needs_review to positive_review
- Reviewers set to Marco Streng