next | previous | forward | backward | up | top | index | toc | Macaulay2 website
RationalMaps :: isEmbedding

isEmbedding -- Checks whether a map of projective varieties is a closed embedding.

Synopsis

Description

Given a map of rings, correspoing to $f : X \to Y$, this determines if this map embeds $X$ as a closed subscheme into $Y$. The target and source must be varieties, in particular their defining ideals must be prime. Consider the Veronese embedding.

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

o3 : RingMap R <--- S
i4 : isEmbedding(f, Verbose=>false)

o4 = true

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 : f=map(R, S, {y,z});

o7 : RingMap R <--- S
i8 : isEmbedding(f, Verbose=>false)

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 : f=map(R,S, {y,z});

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

o12 = true
i13 : isEmbedding(f)
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.
isEmbedding: Checking to see if the map is a regular map
isEmbedding: computing the inverse  map
Starting inverseOfMapSimis(SimisStrategy or HybridStrategy)
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 1}.
inverseOfMapSimis: About to check rank, if this is very slow, you may try turning QuickRank=>false.
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 2}.
inverseOfMapSimis: About to check rank, if this is very slow, you may try turning QuickRank=>false.
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 4}.
inverseOfMapSimis: About to check rank, if this is very slow, you may try turning QuickRank=>false.
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 7}.
inverseOfMapSimis: About to check rank, if this is very slow, you may try turning QuickRank=>false.
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 11}.
inverseOfMapSimis: About to check rank, if this is very slow, you may try turning QuickRank=>false.
inverseOfMapSimis:  About to compute partial Groebner basis of rees ideal up to degree {1, 16}.
inverseOfMapSimis:  We give up.  Using the previous computations, we compute the whole 
        Groebner basis of the rees ideal.  Increase HybridLimit and rerun to avoid this.
isRankAtLeast: Going to single threaded version.

o13 = false

If the option Verbose is set to true, the function will describe what it is doing at each step.

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, MinorsCount, and CheckBirational are simply passed when this function calls inverseOfMap. Note, this function, isEmbedding, will only behave properly if CheckBirational is set to true.

Ways to use isEmbedding :

For the programmer

The object isEmbedding is a method function with options.