# genericProjection -- finds a random (somewhat) generic projection of the ring or ideal

## Synopsis

• Usage:
genericProjection(n, I)
genericProjection(n, R)
genericProjection(I)
genericProjection(R)
• Inputs:
• I, an ideal, in a polynomial ring
• R, a ring, a quotient of a polynomial ring
• n, an integer, an integer specifying how many dimensions to drop
• Optional inputs:
• MaxCoordinatesToReplace => an integer, default value infinity, to be passed to randomCoordinateChange
• Replacement => , default value Full, to be passed to randomCoordinateChange
• Homogeneous => , default value true, to be passed to randomCoordinateChange
• Verbose => ..., default value false, turns out Verbose (debugging) output
• Outputs:
• a list, a list with two entries, the generic projection map, and the ideal if I was provided, or the ring if R was provided

## Description

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.