next | previous | forward | backward | up | index | toc

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

## Synopsis

• Usage:
val = isEmbedding(f)
val = isEmbedding(phi)
• Inputs:
• f, , the ring map corresponding to $f : X \to Y$
• phi, an instance of the type RationalMapping, a rational map of projective varieties, $f : X \to Y$.
• Optional inputs:
• Verbosity => an integer, default value 1, if 0 then silence the function, if 1 then generate informative output which can be used to adjust strategies, if > 1 then generate a detailed description of the execution
• AssumeDominant => , default value false, whether to assume the provided rational map of projective varieties is dominant, if set to true it can speed up computation
• Strategy => , default value HybridStrategy, choose the strategy to use: HybridStrategy, SimisStrategy, or ReesStrategy
• HybridLimit => an integer, default value 15, within HybridStrategy, the option HybridLimit controls how often SimisStrategy and ReesStrategy are used, larger numbers means SimisStrategy will be executed longer
• MinorsLimit => an integer, default value 0, how many submatrices of a variant of the Jacobian dual matrix to consider before switching to a different strategy
• QuickRank => , default value true, whether to compute rank via the package FastMinors
• Outputs:
• val, , true if the map is an embedding, otherwise false.

## Description

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