Let's define a plane (affine) elliptic curve
X.
i1 : R = QQ[x,y]
o1 = R
o1 : PolynomialRing
|
i2 : f = y^2 + y - x^3 - x
3 2
o2 = - x + y - x + y
o2 : R
|
i3 : X = Spec(R/f)
o3 = X
o3 : AffineVariety
|
i4 : Z = singularLocus X
o4 = Z
o4 : AffineVariety
|
Let's check that it's nonsingular.
i5 : describe Z
QQ [x, y]
o5 = Spec(--------------------------------------)
3 2 2
(- x + y - x + y, - 3x - 1, 2y + 1)
|
i6 : ideal Z
3 2 2
o6 = ideal (- x + y - x + y, - 3x - 1, 2y + 1)
o6 : Ideal of R
|
i7 : gens gb ideal Z
o7 = | 1 |
1 1
o7 : Matrix R <--- R
|
Let's do the same thing over the integers
ZZ.
i8 : R = ZZ[x,y]
o8 = R
o8 : PolynomialRing
|
i9 : f = y^2 + y - x^3 - x
3 2
o9 = - x + y - x + y
o9 : R
|
i10 : X = Spec(R/f)
o10 = X
o10 : AffineVariety
|
i11 : Z = singularLocus X
o11 = Z
o11 : AffineVariety
|
i12 : describe Z
ZZ [x, y]
o12 = Spec(--------------------------------------)
3 2 2
(- x + y - x + y, - 3x - 1, 2y + 1)
|
i13 : ideal Z
3 2 2
o13 = ideal (- x + y - x + y, - 3x - 1, 2y + 1)
o13 : Ideal of R
|
i14 : gens gb ideal Z
o14 = | 91 y-45 x-11 |
1 3
o14 : Matrix R <--- R
|
i15 : char Z
o15 = 91
|
Now let's homogenize and do the same thing in projective space.
i16 : R = ZZ[x,y,z]
o16 = R
o16 : PolynomialRing
|
i17 : f = y^2 + y - x^3 - x
3 2
o17 = - x + y - x + y
o17 : R
|
i18 : f = homogenize(f, z)
3 2 2 2
o18 = - x + y z - x*z + y*z
o18 : R
|
i19 : X = Proj(R/f)
o19 = X
o19 : ProjectiveVariety
|
i20 : describe X
ZZ [x, y, z]
o20 = Proj(------------------------)
3 2 2 2
- x + y z - x*z + y*z
|
i21 : Z = singularLocus X
o21 = Z
o21 : ProjectiveVariety
|
i22 : describe Z
ZZ [x, y, z]
o22 = Proj(----------------------)
(91, y - 45z, x - 11z)
|
i23 : char Z
o23 = 91
|
i24 : factor oo
o24 = 7*13
o24 : Expression of class Product
|
Let's examine more closely how that computation was done.
i25 : J = ideal(f,diff_x f, diff_y f, diff_z f)
3 2 2 2 2 2 2 2
o25 = ideal (- x + y z - x*z + y*z , - 3x - z , 2y*z + z , y - 2x*z +
-----------------------------------------------------------------------
2y*z)
o25 : Ideal of R
|
i26 : transpose gens gb J
o26 = {-2} | 2yz+z2 |
{-2} | y2-2xz-z2 |
{-2} | 3x2+z2 |
{-3} | 4xz2+yz2+2z3 |
{-3} | x3-xz2+yz2 |
{-4} | 91z4 |
{-4} | yz3-45z4 |
{-4} | xz3-11z4 |
{-4} | xyz2-40z4 |
{-4} | x2z2-30z4 |
{-4} | x2yz+15z4 |
11 1
o26 : Matrix R <--- R
|
We see 91. Let's check whether it's zero on the standard affine open covering of the scheme.
i27 : 91 * z^4 % J
o27 = 0
o27 : R
|
i28 : 91 * y^4 % J
o28 = 0
o28 : R
|
i29 : 91 * x^4 % J
o29 = 0
o29 : R
|
The
saturate command automates that investigation.
i30 : saturate J
o30 = ideal (91, y - 45z, x - 11z)
o30 : Ideal of R
|