Computing the ideal of relations

Given two projective spaces $\mathbb P^n$ and $\mathbb P^m$ together with $m+1$ global sections of the invertible sheaf $\mathcal O_{\mathbb P^n}(d)$ (e.g. $m+1$ homogeneous polynomials of degree $d$ in the variables $x_0,\cdots,x_n$, say $f_0,\cdots,f_m$), we know that there exists a unique morphism $[f_0,\cdots,f_m] : \mathbb P^n \to \mathbb P^m$. Assume the projective spaces are considered over a noetherian ring ; the morphisms to the base are both projective, hence proper, which means $[f_0,\cdots,f_m]$ is a proper morphism, hence has closed image.

Question : Does there exist an algorithm already implemented in Sage to find the homogeneous ideal of relations of the image of the map $[f_0,\cdots,f_m]$? I've been messing around for a few days now and it seems to only involve linear algebra, so in the case where the base is the spectrum of a field there should be an algorithm, I just don't know how efficient it is or if it's implemented at all. I would not mind if the algorithm was slow, I just want it to work in small cases (i.e. small degree and small number of polynomials)!

edit retag close merge delete

Sort by » oldest newest most voted

The missing key word is elimination, the sage method is elimination_ideal:

There will be no (projective) Spec in this answer, hope, i am translating correctly the question into the affine (homogenos) setting. Let us fix a (ring $R$, or maybe first a) field $F$. We consider the two polynomial rings $$A=A_m=F[x_0,x_1,\dots,x_m]$$ and $$B=B_n=F[y_0,y_1,\dots,y_n]$$ and a map from $A$ to $B$ given formally by $$x_k\to f_k(y_0, y_1,\dots,y_n)\ .$$ Here $f_k$ is a homogenous polynomial of degree $d$. So the map $f$ (say) $$A_m\to B_n$$ induces a map $${\mathbb P}_F^m\leftarrow {\mathbb P}_F^n\ .$$ (And we will never see the projective spaces again.) Let us now work in the ring $$C = F[\ x_0,x_1,\dots,x_m\ ;\ y_0,y_1,\dots,y_n\ ]\ /\ J$$ where $J$ is the ideal generated by the weighted homogenous polynomials $$y_k - f_k(x_0,x_1,\dots,x_m)\ .$$ We want and only need now to eliminate the $x$-variables.

Code example:

We use instead of $x_0,x_1,x_2$ the variables a,b,c.

And instead of $y_0, y_1,y_2,y_3,y_4,y_5,y_6$ the variables s,t,u,v,w,x,y,z.

We work over rationals and consider the map of degree $d=4$ corresponding to:

R.<a,b,c,s,t,u,v,w,x,y,z> = PolynomialRing( QQ )
J = R.ideal( [ s - ( a^4 + b^4 + c^4 ),
t - ( a^2 + b^2 + c^2 )^2,
u - ( a+b+c )*(a^3 + b^3 + c^3),
v - a*b*c*(a+b+c),
w - ( a^2*b^2 + a^2*c^2 + b^2*c^2 ),
x - ( a*b + a*c + b*c )^2,
y - ( a + b + c )^4,
z - ( a^3*b + a*b^3 + a^3*c + a*c^3 + b^3*c + b*c^3 ) ] )

K = J.elimination_ideal( [ a,b,c ] )
for g in K.gens():
print g


This gives:

2*v + w - x
u + 6*x - y + 3*z
t - 2*w + 6*x - y + 4*z
s + 6*x - y + 4*z
w^2 - 10*w*x + 25*x^2 - 4*x*y - 4*w*z + 20*x*z + 4*z^2

more