- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 688
 
Closed
Description
Alex Ghitza reported:
I am fairly certain the following two things are bugs, but I want to
double-check that I'm not doing something stupid before submitting a ticket:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: f = H([x-y, x*y])
sage: f
Scheme endomorphism of Projective Space of dimension 1 over Rational Field
 Defn: Defined on coordinates by sending (x : y) to
       (x - y : x*y)
This is nonsense: there is no morphism from P1 to P1 given by those
equations, since the two polynomials x-y and x*y are not homogeneous of
the same degree.  I think Sage should throw a ValueError here.
The second example:
sage: R.<x,y> = QQ[]
sage: P1 = ProjectiveSpace(R)
sage: H = P1.Hom(P1)
sage: f = H([x^2, x*y])
sage: f
Scheme endomorphism of Projective Space of dimension 1 over Rational Field
 Defn: Defined on coordinates by sending (x : y) to
       (x^2 : x*y)
This is also bad: the two polynomials are now homogeneous of degree 2,
but they are not relatively prime (and so this is not a morphism from P1
to P1, but rather a rational map since it is not defined at (0 : y)).  I
think Sage should also throw a ValueError here.
(Or maybe I'm doing things wrong, in which case I'd love to find out how
to make this work.)
to which John Cremona added:
You are definitely right.  The problem lies (as far as I can see) in
sage.schemes.generic in the __init__ funtion of class
SchemeMorphism_on_points_projective_space.  (I only found this out by
tring to construct a morphism from P^1 to P^1 using 3 polynomials,
which did raise an error in this very function.)
It appears that the only check this function does is that the number
of polys is correct.  It does not check that they are actually polys,
or have the right number of variables, let alone that they are coprime
and homogeneous of the same degree:
sage: S.<u,v,w> = QQ[]
sage: f = H([u,v])
sage: f = H([u*v*w,u+v+w])
sage: f = H([exp(u),exp(v)])
sage: f
Scheme endomorphism of Projective Space of dimension 1 over Rational Field
 Defn: Defined on coordinates by sending (x : y) to
       (e^u : e^v)
with H as in your example.
This definitely deserves a ticket, which I will create. now.
Component: algebraic geometry
Keywords: projective space morphism
Author: Alex Ghitza, William Stein
Reviewer: John Cremona
Merged: sage-4.3.1.rc1
Issue created by migration from https://trac.sagemath.org/ticket/3964