|
The functions in this section relate to the isomorphic projection of
schemes in higher-dimensional projective spaces down to lower-dimensional
ones. This is achieved through finding points in the ambient projective
space which don't lie on either the tangent or secant varieties of the
scheme. These varieties are interesting in their own right and we provide
functions to compute them as subschemes of the ambient space or to test if
a given point lies on them.
For a scheme X in affine or ordinary projective space over a field, the
tangent variety TX is a subscheme of the ambient space whose set of
closed points is the closure of the union of all tangent
spaces of closed points of X. We do not worry if the TX that
we construct is necessarily a reduced scheme or not. If X is non-reduced,
TX probably won't be and will usually be of larger dimension than expected.
If X is projective, the union of tangent spaces is already closed in the
ambient space.
PatchIndex: RngIntElt Default: 0
The scheme X must be affine or ordinary projective. If X is projective, the
tangent variety can be computed projectively but it is usually
quicker to compute the result for an affine patch and then
take the projective closure. If the parameter PatchIndex is set to
i > 0 then in the projective case the function will do this, using
the ith standard affine patch (see AffinePatch). This will give the
correct result as long as no component of X lies in the hyperplane
complement of the patch.
The computation of the full tangent variety can be quite time consuming
except in small dimensional ambient spaces. If the dimension of the
ambient space is n, it is effectively calculated as the image of a
subscheme in a 2n-dimensional ambient under projection down to X's
ambient space. However, this call gives a much
faster way of testing if a particular point P in the ambient space lies
in the tangent variety of the scheme X when X is projective.
> P<x,y,z,t> := ProjectiveSpace(RationalField(),3);
> X := Scheme(P,[x*y+z*t,x^2-y^2+2*z^2-4*t^2]);
> Dimension(X);
1
> time TangentVariety(X);
Scheme over Rational Field defined by
x^8 + 4*x^6*y^2 + 25/4*x^6*z^2 - 25/2*x^6*t^2 + 44*x^5*y*z*t + 6*x^4*y^4 +
25/4*x^4*y^2*z^2 - 25/2*x^4*y^2*t^2 + 27/2*x^4*z^4 - 193/8*x^4*z^2*t^2 +
54*x^4*t^4 + 88*x^3*y^3*z*t + 275/2*x^3*y*z^3*t - 275*x^3*y*z*t^3 +
4*x^2*y^6 - 25/4*x^2*y^4*z^2 + 25/2*x^2*y^4*t^2 - 67/2*x^2*y^2*z^4 +
2025/4*x^2*y^2*z^2*t^2 - 134*x^2*y^2*t^4 + 11*x^2*z^6 + 22*x^2*z^4*t^2 -
44*x^2*z^2*t^4 - 88*x^2*t^6 + 44*x*y^5*z*t - 275/2*x*y^3*z^3*t +
275*x*y^3*z*t^3 + 50*x*y*z^5*t + 200*x*y*z^3*t^3 + 200*x*y*z*t^5 + y^8 -
25/4*y^6*z^2 + 25/2*y^6*t^2 + 27/2*y^4*z^4 - 193/8*y^4*z^2*t^2 + 54*y^4*t^4
- 11*y^2*z^6 - 22*y^2*z^4*t^2 + 44*y^2*z^2*t^4 + 88*y^2*t^6 + 2*z^8 +
16*z^6*t^2 + 48*z^4*t^4 + 64*z^2*t^6 + 32*t^8
Time: 0.440
> time TangentVariety(X: PatchIndex := 4);
Scheme over Rational Field defined by
x^8 + 4*x^6*y^2 + 25/4*x^6*z^2 - 25/2*x^6*t^2 + 44*x^5*y*z*t + 6*x^4*y^4 +
25/4*x^4*y^2*z^2 - 25/2*x^4*y^2*t^2 + 27/2*x^4*z^4 - 193/8*x^4*z^2*t^2 +
54*x^4*t^4 + 88*x^3*y^3*z*t + 275/2*x^3*y*z^3*t - 275*x^3*y*z*t^3 +
4*x^2*y^6 - 25/4*x^2*y^4*z^2 + 25/2*x^2*y^4*t^2 - 67/2*x^2*y^2*z^4 +
2025/4*x^2*y^2*z^2*t^2 - 134*x^2*y^2*t^4 + 11*x^2*z^6 + 22*x^2*z^4*t^2 -
44*x^2*z^2*t^4 - 88*x^2*t^6 + 44*x*y^5*z*t - 275/2*x*y^3*z^3*t +
275*x*y^3*z*t^3 + 50*x*y*z^5*t + 200*x*y*z^3*t^3 + 200*x*y*z*t^5 + y^8 -
25/4*y^6*z^2 + 25/2*y^6*t^2 + 27/2*y^4*z^4 - 193/8*y^4*z^2*t^2 + 54*y^4*t^4
- 11*y^2*z^6 - 22*y^2*z^4*t^2 + 44*y^2*z^2*t^4 + 88*y^2*t^6 + 2*z^8 +
16*z^6*t^2 + 48*z^4*t^4 + 64*z^2*t^6 + 32*t^8
Time: 0.040
> time IsInTangentVariety(X,P![1,2,3,4]);
false
Time: 0.000
For a scheme X in affine or ordinary projective space over a field, the
secant variety SX is a subscheme of the ambient space whose set of
closed points is the closure of the union of all lines joining distinct pairs
of closed points of X (secants). Again, we do not worry if the SX that
we construct is necessarily a reduced scheme or not. Note that the union of
all secants is not necessarily a closed subset of the ambient space even
when X is projective.
PatchIndex: RngIntElt Default: 0
The scheme X must be affine or ordinary projective. In the projective case we
construct SX by taking the projective closure of the result for
an appropriate affine patch (intersecting every component of X).
For simplicity, we currently only consider standard affine patchs
so the function will fail for X projective if
it has components lying in every standard hyperplane.
As for TangentVariety, if the parameter PatchIndex is set to
i > 0 then the ith standard affine patch will be the one used and
this saves a little time, avoiding a search. Effectively, the
computation consists of finding the image of a subscheme in a
projection from a 2n + 1 dimensional ambient space down to the
(n dimensional) ambient space of X and can be quite lengthy.
Again as in the tangent variety case, if the scheme X is projective, this call
gives a much faster way of testing if a given ambient point P lies
in SX than computing the whole of SX with SecantVariety.
To be precise, this call actually tells you whether or not P lies in
the union of secants rather than its closure SX. Additionally, affine
patchs are not used, so the above restriction on validity doesn't apply.
> P<a,b,c,d,e> := ProjectiveSpace(RationalField(),4);
> X := Scheme(P,[a*d + c*e, a*c + d*e,
> a^2 - e^2, c^2*e - d^2*e,
> b^2 + c*d + e^2]); // union of 3 irreducible curves
> Dimension(X);
1
> time SecantVariety(X : PatchIndex := 2);
Scheme over Rational Field defined by
a^4*b^2 + a^4*e^2 - a^3*c^2*e - a^3*d^2*e + a^2*b^4 + 2*a^2*b^2*c*d +
1/4*a^2*c^4 + 1/2*a^2*c^2*d^2 + 1/4*a^2*d^4 - a^2*e^4 + a*c^2*e^3 +
a*d^2*e^3 - b^4*e^2 - 2*b^2*c*d*e^2 - b^2*e^4 - 1/4*c^4*e^2 -
1/2*c^2*d^2*e^2 - 1/4*d^4*e^2
Time: 26.890
> Dimension($1);
3
> time IsInSecantVariety(X,P![0,1,0,-3,0]);
true
Time: 0.000
The aim of the functions here is to try to find embeddings of
projective schemes which lie in high-dimensional ambient spaces into
lower dimensional spaces via projection.
Let X be a scheme in ordinary projective space that is assumed to be
reduced but not necessarily irreducible or non-singular, d
the dimension of X and n the dimension of its ambient space P.
The conditions imply that the tangent variety and secant variety of
X are finite unions of subschemes of dimension at most 2d + 1
(cf [Har77] IV.3), so while n > 2d + 1,
we can find points in P lying in neither of these, unless possibly the
base field is a finite field. For such a point, projection down to
a hyperplane gives an isomorphism of X to its image
(cf. op. cit.) and we can continue projecting down one
dimension at a time until n = 2d + 1.
In fact, the tangent and secant varieties of the image of X will be
their images under the projection also, which induces a finite map on
them (it's quasi-finite since the inverse image of a point in the image
hyperplane is a line through the projecting point pt, which any
(closed) subscheme not containing pt must intersect finitely). Hence
their images have the same dimensions. If the maximum of these dimensions
is tsd ≤2d + 1 we can actually project down to a subspace of
dimension tsd. Further, the fact that the tangent and secant images
correspond under projection shows that if we find a linear change of variables
for the coordinates of P, (x1, ..., xn) -> (y1, ..., yn), such that y1, ..., ytsd are a set of Noether
normalising variables for the defining ideal of the union of the tangent
and secant varieties in the coordinate ring of P, then we can project X
isomorphically down to the tsd dimensional linear subspace
ytsd + 1=0, ..., yn=0 directly.
This would be the most elegant solution. However, in practice it involves
computing the full tangent and secant varieties which can be extremely
time-consuming once we are in dimensions above around 3 or 4. By contrast,
checking if a random point of P lies in the secant or tangent variety is
reasonably fast. Therefore, we choose to follow the method of picking
random points to project down one dimension at a time and finish when we
reach dimension 2d + 1 (when the secant variety generally fills the
ambient space anyway).
SetVerbose("IsoToSub", n): Maximum: 1
As described above, this function projects the scheme X isomorphically down to
a linear subspace of its ambient space P of dimension 2d + 1, if 2d + 1 < n. In the case
of finite base fields or infinite ones of small characteristic, the
process may stop before reaching this dimension but this should be
very rare (difficulties finding random points outside the secant/tangent
varieties). The return values consist of the image scheme, with the subspace
as its ambient space, and the explicit map taking X to this image.
SetVerbose("EmbCrv", n): Maximum: 1
This function embeds a plane curve C
as a non-singular projective curve in ordinary 2- or
3-dimensional projective space over the base field. This is effected by
first using the function field machinery to give a non-singular
projective embedding and then projecting down to a 3-dimensional
subspace if necessary. In rare cases with small finite base fields or in
small characteristic, the final embedding may still be into a
higher-dimensional ambient space. The image scheme is returned along with
the mapping of C to it.
We will embed a genus 5 plane curve into P3.
> P<x,y,z> := ProjectiveSpace(RationalField(),2);
> f := x^5+x^2*y^3+y^2*z^3+x^2*z^3-y*z^4-z^5;
> C := Curve(P,f);
> Genus(C);
5
> SetVerbose("IsoToSub",1);
> SetVerbose("EmbCrv",1);
> C1, mp := EmbedPlaneCurveInP3(C);
Curve of genus 5.
Mapping to 4-space by canonical divisor map
Map was an embedding (non-hyperelliptic curve).
Beginning projection to 3-space.
Projection from dimension 4 to dimension 3:
Finding good projection point...
Performing projection...
Time: 0.002
> P1 := AmbientSpace(C1);
> AssignNames(~P1,["a","b","c","d"]);
> C1;
Scheme over Rational Field defined by
a^2*d^3 + a*b^2*c*d - a*b*c^2*d + a*b*d^3 + a*c^2*d^2 - a*d^4 + b^5 + b^2*c^3 -
b^2*c*d^2 - b^2*d^3 + 2*b*d^4 - c^2*d^3 - d^5,
a^2*c*d + a*b^3 + a*c^3 - a*c*d^2 + b*c*d^2 - c*d^3,
a*b^2*d - a*b*d^2 + a*c^2*d + b^3*c + c^4 - c^2*d^2,
a^3*d + a^2*c^2 - a^2*d^2 + a*b*d^2 - a*d^3 + b^2*c*d,
a^2*b - c^2*d
> Dimension(C1);
1
> ArithmeticGenus(C1);
5
> IsNonsingular(C1);
true
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|