This gives the projection map from $\mathbb{A}^N \mapsto\mathbb{A}^{N-n}$ and the defining ideal of the projection of $V(I)$
i1 : R=ZZ/5[x,y,z,w]; |
i2 : I = ideal(x,y^2,w^3+x^2); o2 : Ideal of R |
i3 : genericProjection(2,I) ZZ 4 3 o3 = (map (R, --[z, w], {- 2x + 2z - 2w, - x - 2y - 2z}), ideal(z - z w + 5 ------------------------------------------------------------------------ 2 2 3 4 z w - z*w + w )) o3 : Sequence |
If no integer $n$ is provided, then drops one dimension, in other words it treats $n = 1$.
i4 : R=ZZ/5[x,y,z,w]; |
i5 : I = ideal(x,y^2); o5 : Ideal of R |
i6 : genericProjection(I) ZZ o6 = (map (R, --[y..z, w], {- 2x + 2z + w, - 2x + 2z - 2w, - 2x + y + 2z}), 5 ------------------------------------------------------------------------ 2 2 2 ideal(y + y*z - z + 2y*w + z*w + w )) o6 : Sequence |
Alternately, instead of I, you may pass it a quotient ring. It will then return the inclusion of the generic projection ring into the given ring, followed by the source of that inclusion. It is essentially the same functionality as calling genericProjection(n, ideal R) although the format of the output is slightly different.
i7 : R = ZZ/13[x,y,z]; |
i8 : I = ideal(y^2*z-x*(x-z)*(x+z)); o8 : Ideal of R |
i9 : genericProjection(R/I) R ZZ o9 = (map (-----------------, --[y..z], {3x + 5y + 6z, 3x + 5y - 6z}), 3 2 2 13 - x + y z + x*z ------------------------------------------------------------------------ ZZ --[y..z]) 13 o9 : Sequence |
This method works by calling randomCoordinateChange before dropping some variables. It passes the options Replacement, MaxCoordinatesToReplace, Homogeneous to that function.
This function makes no attempt to verify that the projection is actually generic with respect to the ideal.
The object genericProjection is a method function with options.