Macaulay2 » Documentation
Packages » RationalMaps :: isEmbedding
next | previous | forward | backward | up | index | toc

isEmbedding -- whether a rational map of projective varieties is a closed embedding



Given a map of rings, corresponding to a rational map $f : X \to Y$, isEmbedding determines whether $f$ map embeds $X$ as a closed subscheme into $Y$. The target and source must be varieties; their defining ideals must be prime. Consider the Veronese embedding.

i1 : R = ZZ/7[x,y];
i2 : S = ZZ/7[a,b,c];
i3 : h = map(R, S, {x^2, x*y, y^2});

o3 : RingMap R <--- S
i4 : isEmbedding(h, Verbosity=>1)
isEmbedding: About to find the image of the map.  If you know the image, 
        you may want to use the AssumeDominant option if this is slow.
inverseOfMapSimis: About to check rank, if this is very slow, you may want to try turning QuickRank=>false.
inverseOfMapSimis: rank found, we computed enough of the Groebner basis.

o4 = true

If the option Verbosity is set to 2, the function will produce very detailed output. Setting it to 0 will suppress output such output. Now consider the projection from a point on the plane to the line at infinity.

i5 : R=QQ[x,y,z];
i6 : S=QQ[a,b];
i7 : h=rationalMapping(R, S, {y,z});
i8 : isEmbedding(h, Verbosity=>0)

o8 = false

That is obviously not an embedding. It is even not an embedding when we restrict to a quadratic curve, even though it is a regular map.

i9 : R=QQ[x,y,z]/(x^2+y^2-z^2);
i10 : S=QQ[a,b];
i11 : h=map(R,S, {y,z});

o11 : RingMap R <--- S
i12 : isRegularMap(h)

o12 = true
i13 : isEmbedding(h, Verbosity=>0)

o13 = false

If the option AssumeDominant is set to true, the function won't compute the kernel of the ring map. Otherwise it will.

The remaining options, Strategy, HybridLimit, MinorsLimit, and CheckBirational are simply passed when isEmbedding calls inverseOfMap. Note, this function, isEmbedding, will only behave properly if CheckBirational is set to true.

We conclude by considering the map from $P^1$ to a cuspidal curve in $P^2$. This is not an embedding, but if we take the strict transform in the blowup of $P^2$, it is an embedding.

i14 : R = ZZ/103[x,y,z];
i15 : T = ZZ/103[u,v];
i16 : P2 = Proj R;
i17 : P1 = Proj T;
i18 : phi = rationalMapping(P2, P1, {u^3, u^2*v, v^3});
i19 : isEmbedding(phi, Verbosity=>0)

o19 = false
i20 : P5ring = ZZ/103[a..f];
i21 : M = matrix{{a,b,c},{d,e,f}};

                   2            3
o21 : Matrix P5ring  <--- P5ring
i22 : blowUpSubvar = Proj(P5ring/(minors(2, M)+ideal(b - d)));
i23 : tau = rationalMapping(P2, blowUpSubvar,{a, b, c}); --the blowup
i24 : tauInverse = tau^-1; --the inverse blowup
i25 : isEmbedding(tauInverse*phi, Verbosity => 0)

o25 = true

See also

Ways to use isEmbedding :

For the programmer

The object isEmbedding is a method function with options.