#3964: [with patch, not ready for review] projective space homs do not check
arguments sufficiently
--------------------------------+-------------------------------------------
 Reporter:  cremona             |       Owner:  AlexGhitza               
     Type:  defect              |      Status:  assigned                 
 Priority:  major               |   Milestone:  sage-3.4.2               
Component:  algebraic geometry  |    Keywords:  projective space morphism
--------------------------------+-------------------------------------------
Description changed by AlexGhitza:

Old description:

> Alex Ghitsa 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.
> }}}

New 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.
 }}}

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/3964#comment:6>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to