|
We now discuss intrinsics which apply to a scheme at a single point.
At the expense of increasing the number of intrinsics, we try to follow
the convention that an intrinsic may simply take a point as its argument
or it may take both a point and a scheme as its arguments.
In the former case, the implicit scheme argument is taken to be the scheme
associated to the point set of the point.
In the latter case, it is first checked that the point can be coerced into some
point set of the given scheme argument.
There are reasons for allowing both methods.
Of course, if one is confident about which scheme, X say, a point p lies on
then there is no ambiguity about writing, say, IsNonsingular(p)
rather than IsNonsingular(X,p).
On the other hand, the second expression is easier to read, and also guards
against the possibility of accidentally referring to the wrong scheme;
that is a particular risk here since the answer makes sense even if p
lies on some other scheme---imagine the confusion that could arise given
a point of a nonsingular curve lying on a singular surface inside
a nonsingular ambient space, for instance.
But also there are trivial cases when scheme arguments are necessary,
IntersectionNumber(C,D,p) for example.
In fact, that particular example exemplifies the value of points being
highly coercible---it is very convenient that the point p could
lie in a point set of either C or D or indeed neither of these
as long as it could be coerced to them if necessary.
Sometimes a function will require that the point argument is rational,
that is, has coordinates in the base ring.
IsSingular(X,p) : Sch,Pt -> BoolElt
Returns true if and only if the point p is a singular point of the scheme X.
IsNonsingular(X,p) : Sch,Pt -> BoolElt
Returns true if and only if the point p is a nonsingular point of the scheme X.
IsOrdinarySingularity(X,p) : Sch,Pt -> BoolElt
Returns true if and only if the tangent cone to the scheme X at the point p
is reduced and X is singular at p.
Currently, the scheme X must be a hypersurface.
Multiplicity(X,p) : Sch,Pt -> RngIntElt
The multiplicity of the point p as a point of the scheme X.
If X is not a hypersurface, computed using local Groebner bases.
TangentSpace(X,p) : Sch,Pt -> Sch
The tangent space to the scheme X at the point p.
This linear space is embedded as a scheme in the same ambient space as X.
An error will be signalled if p is a singular point of X or is not a
rational point of X.
TangentCone(X,p) : Sch,Pt -> Sch
The tangent cone to X at the point
p embedded as a scheme in the same ambient space.
If the scheme X is not a hypersurface, the computation uses
local Groebner bases.
We will say that an isolated singular point p in a pointset X(k) over a field k is
a hypersurface singularity if the completion of its local ring is isomorphic
to the quotient of a power series ring k[[x1, ..., xd]] by a single power series
F(x1, ..., xd). That is, it is analytically equivalent to the singularity of
an analytic hypersurface defined by F at the origin. Clearly d is equal to the
dimension of the tangent space at p here. This type of singularity occurs
quite commonly (e.g., singular points on actual hypersurfaces, A-D-E singularities
on surfaces).
This section contains intrinsics to test whether such a p is a hypersurface singularity
and compute the equivalent analytic equation F to given precision, to increase the
precision of F at a later stage and to expand a rational function on X to the
corresponding element in the field of fractions of k[[x1, ..., xd]] to
any required precision.
The point p is a singular point in X(k) for a field k. It should be an isolated singularity
on X and should only lie on irreducible components of X whose dimension d is maximal,
i.e. the dimension of X (these conditions are not checked).
The integer prec should be positive.
The function returns whether p is a hypersurface singularity on X as defined above.
This is also equivalent to the conditions that the tangent space of p has dimension
d + 1 and that the local ring at p is a local complete intersection ring (if X is reduced
at p - for example, if X is a variety - the second condition follows automatically from
the first).
If this is true, the function also returns extra values. The second return value is a multivariate
polynomial F1 in a polynomial ring k[x1, ..., xd + 1] such that the singularity
p is analytically equivalent to that of the analytic hypersurface F ∈k[[x1, ..., xd + 1]]
at the origin and F1 is equal to F for terms of degree less than or equal to prec.
The third is a sequence of simple rational functions on X/k (i.e., quotients of polynomials
in the coordinate ring of the ambient of X that, if X is projective, have the same degree for
all gradings) such that xi corresponds to the ith rational function of the sequence.
If X is affine, these rational functions will all be k-linear forms in the coordinate variables
and if X is ordinary projective, linear forms in the coordinate variables divided by a particular
variable that is non-zero at p.
The fourth return value is a data record that is needed if the user wants to later expand F
to higher precision or to expand arbitrary rational functions on X/k at p.
The implementation makes use of Magma's local Groebner bases, after localising p to an affine
patch and translating it to the origin.
The record dat should be the data record returned for a hypersurface singularity p in X(k)
by the intrinsic above, prec a positive integer and R a polynomial ring over k
of rank d + 1 (d is the dimension of X).
Returns a polynomial that expands the equation of the analytic hypersurface F to
include all terms of degree less than or equal to prec. The result will be returned
as an element of R (with the ith variable of R corresponding to the analytic
variable denoted xi in the exposition of the previous intrinsic).
This intrinsic is very useful to expand F to higher precision after the
original call that determined that p was a hypersurface singularity.
The record dat should be the data record returned for a hypersurface singularity p in X(k)
by the first intrinsic of this subsection, prec a positive integer and R a polynomial ring over k
of rank d + 1 (d is the dimension of X). The argument f should be a rational function on X/k
given as an element of the field of fractions of the coordinate ring of the ambient of X
or the base change of X to k, if k is not the base ring of X. The argument f can in fact be given
as an element of any rational function field over k whose rank is equal to the rank
of the coordinate ring of X. In any case, when X is projective, the numerator and
denominator of f have to be homogeneous and have the same degree with respect to all gradings
of X.
Returns f pulled back to the analytic coordinate ring at p (identified with
k[[x1, ..., xd + 1]]/(F) in the notation introduced above) and expanded to
required precision. In fact, the return value is given as two polynomials a and b
in R, whose variables are identified with the xi, such that a/b is the finite
approximation to the value of the pullback. a and b are actually just the pullbacks
of the numerator and denominator of f expanded to include all terms of degree less than or
equal to prec. The value is returned as two polynomials rather than a quotient as
b may be zero if prec is sufficiently small even when the denominator of
f does not vanish on X.
TjurinaNumberAnalyticHypersurface(dat) : Rec -> RngIntElt
The record dat should be the data record returned for a hypersurface singularity p in X(k)
by the first intrinsic of this subsection. It represents a specific power series
F(x1, ..., xd + 1) ∈k[[x1, ..., xd + 1]] as described above.
Returns the Milnor (resp. Tjurina) number of this power series F.
That is, the k-dimension of the
quotient of k[[x1, ..., xd + 1]] by the ideal generated by the formal derivatives of F
(resp. the formal derivatives of F and F).
This may be infinite, in which case Infinity is returned. The Tjurina number
is infinite if an only if p is not an
isolated singularity. The same is true for the Milnor number if the characteristic of
k is 0.
Note that the Milnor number can depend on the choice of F (F multiplied by any power
series with non-zero constant term defines the same analytic hypersurface singularity)
whereas the Tjurina number does not - it only depends on the ideal generated by F.
We consider a singular degree 4 Del Pezzo surface in P 4 over (Q) with two
conjugate singular points defined over a quadratic extension.
> P4<x,y,z,t,u> := ProjectiveSpace(Rationals(),4);
> X := Scheme(P4,[x^2+y^2-2*z^2, x*t+t^2-y*u+2*u^2]);
> IsIrreducible(X);
true
> sngs := SingularSubscheme(X);
> Support(sngs);
> pts := PointsOverSplittingField(sngs);
> pts;
{@ (0 : 0 : 0 : r1 : 1), (0 : 0 : 0 : r2 : 1) @}
> pt := pts[1];
> k := Ring(Parent(pt));
> k;
Algebraically closed field with 2 variables over Rational Field
Defining relations:
[
r2^2 + 2,
r1^2 + 2
]
> p := X(k)!Eltseq(pt);
> boo,F,seq,dat := IsHypersurfaceSingularity(p,3);
> boo;
true
> R<a,b,c> := Parent(F);
> F;
2*r1*a*b^2 - 2*a^2*c - 3/2*r1*a*c^2 + 8*a^2 - 4*b^2 + 4*r1*a*c + c^2
> HypersurfaceSingularityExpandFurther(dat,4,R);
-a^4 - r1*a^3*c + 1/2*a^2*c^2 + 2*r1*a*b^2 - 2*a^2*c - 3/2*r1*a*c^2 +
8*a^2 - 4*b^2 + 4*r1*a*c + c^2
> Rk<p,q,r,s,w> := PolynomialRing(k,5);
> //can use Rk as base-changed coordinate ring here
> HypersurfaceSingularityExpandFunction(dat,(p^2+q*s)/w^2,3,R);
2*r1*a^3 - 3*a^2*c - 1/2*r1*a*c^2 + 4*a^2 + (2*r1 + 1)*a*c - 1/2*c^2 + r1*c
1
> // Both singularities are simple $A_1$ singularities which are
> // characterised by having Milnor number 1.
> MilnorNumberAnalyticHypersurface(dat);
1
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|