Opened 11 years ago

Closed 11 years ago

#10297 closed defect (fixed)

Creating morphisms between projective varieties fails

Reported by: cremona Owned by: AlexGhitza
Priority: major Milestone: sage-4.6.2
Component: algebraic geometry Keywords: scheme projective morphism
Cc: Niels, AlexGhitza Merged in: sage-4.6.2.alpha0
Authors: John Cremona Reviewers: Andrey Novoseltsev
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges


Construction of morphisms between projective varieties which are no projective space itself fails, since the test that the defining polynomials are homogeneous and of the same degree cannot test QuotientRingElements as these do not have is_homogeneous() or degree() methods.


sage: P2.<x,y,z>=ProjectiveSpace(QQ,2)
sage: f = x^3+y^3+60*z^3
sage: g = y^2*z-( x^3 - 6400*z^3/3)
sage: C = Curve(f)
sage: E = Curve(g)
sage: xbar,ybar,zbar=C.coordinate_ring().gens()
sage: H = C.Hom(E)
sage: H([zbar,xbar-ybar,-(xbar+ybar)/80])
AttributeError                            Traceback (most recent call last)

/home/jec/<ipython console> in <module>()

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/schemes/generic/homset.pyc in __call__(self, x, check)
    234         """
    235         if isinstance(x, (list, tuple)):
--> 236             return self.domain()._point_morphism_class(self, x, check=check)
    238         if is_RingHomomorphism(x):

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/schemes/generic/algebraic_scheme.pyc in _point_morphism_class(self, *args, **kwds)
   1099 class AlgebraicScheme_subscheme_projective(AlgebraicScheme_subscheme):
   1100     def _point_morphism_class(self, *args, **kwds):
-> 1101         return morphism.SchemeMorphism_on_points_projective_space(*args, **kwds)
   1103     def dimension(self):

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/schemes/generic/morphism.pyc in __init__(self, parent, polys, check)
    456             # morphisms from projective space are always given by
    457             # homogeneous polynomials of the same degree
--> 458             deg = self.defining_polynomials()[0].degree()
    459             for poly in self.defining_polynomials():
    460                 if ( != deg) or not poly.is_homogeneous():

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/structure/ in sage.structure.element.Element.__getattr__ (sage/structure/element.c:2666)()

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/structure/ in sage.structure.parent.getattr_from_other_class (sage/structure/parent.c:2840)()

/home/jec/sage-current/local/lib/python2.6/site-packages/sage/structure/ in sage.structure.parent.raise_attribute_error (sage/structure/parent.c:2638)()

AttributeError: 'QuotientRingElement' object has no attribute 'degree'

Patch up soon.

Attachments (1)

trac_10297-morphism.patch (2.9 KB) - added by cremona 11 years ago.
applies to 4.6.1.alpha1

Download all attachments as: .zip

Change History (5)

Changed 11 years ago by cremona

applies to 4.6.1.alpha1

comment:1 Changed 11 years ago by cremona

  • Authors set to John Cremona
  • Status changed from new to needs_review

comment:2 Changed 11 years ago by cremona

  • Cc AlexGhitza added

I am CC'ing AlexGhitza? since the problem was caused by #3964 of he was the author (and I was the referee who clearly did not do a good job!)

comment:3 Changed 11 years ago by novoselt

  • Reviewers set to Andrey Novoseltsev
  • Status changed from needs_review to positive_review

Fixes the error reported in this ticket, positive review!

comment:4 Changed 11 years ago by jdemeyer

  • Merged in set to sage-4.6.2.alpha0
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.