Let $I$ be an ideal of $k[x_1, \ldots, x_m, y_1, \ldots, y_n]$, $k$ being a field. Does any of the computer algebra systems implement any algorithm to calculate the generators of the 'bi-homogenization' $\tilde I$ of $I$ with respect to $x$ and $y$ variables?

(Recall that the 'bi-homogenization' of a polynomial $f = \sum a_{\alpha, \beta} x^\alpha y^\beta$ is by definition $\tilde f := \sum a_{\alpha, \beta} x^\alpha y^\beta x_0^{d - |\alpha|} y_0^{e- |\beta|}$, where $x_0$ and $y_0$ are two new variables, $d := \deg_x(f)$ and $e := \deg_y(f)$. Then $\tilde I := ${$\tilde f: f \in I$}.)

My motivation is geometric: to find the closure $\overset{-}{V}$ of a subvariety $V$ of $k^{m+n}$ in $\mathbb{P}^m \times \mathbb{P}^n$. Of course I could as well calculate the Segre embedding of $\overset{-}{V}$ in $\mathbb{P}^{mn + m +n}$, but I would like to have something computationally less expensive.

I can think of an algorithm which involves introducing $n$ (or $m$, whichever is the smaller) new variables $t_1, \ldots, t_n$ and computing the monomial basis of an ideal $J$ in $k[x,y,t]$, where $J$ is to be constructed from $I$. But I was wondering if someone had already implemented some (possibly better) algorithm which would do this job.

  • $\begingroup$ The title has been changed - after 22 views and no answer in 24 hours. Let's see if it works :) $\endgroup$
    – pinaki
    Aug 31 '10 at 8:17

This can be done in a few steps in probably any computer algebra package. You take the generators of your original ideal $I$, and bi-homogenize them, as described in the question. Then saturate with respect to the two hyperplanes at infinity, which are defined by the equation $x_0 y_0$.

For example, the diagonal in $\mathbb A^3 \times \mathbb A^3$ is defined by $x_1 - y_1$, $x_2 - y_2$, and $x_3 - y_3$. If I wanted to use this to compute the ideal of the diagonal in $\mathbb P^3 \times \mathbb P^3$, I would use the following commands in Macaulay2:

 r = QQ[x0,x1,x2,x3,y0,y1,y2,y3]
 i = ideal(x1*y0-y1*x0, x2*y0-y2*x0, x3*y0-y3*x0)
 saturate(i, x0*y0)

The code in Singular would be:

 ring r = 0, (x0,x1,x2,x3,y0,y1,y2,y3), dp;
 ideal i = x1*y0-y1*x0, x2*y0-y2*x0, x3*y0-y3*x0;
 LIB "elim.lib";
 sat(i, x0*y0);
  • $\begingroup$ Thanks! I forgot about saturation - this is pretty cool! $\endgroup$
    – pinaki
    Aug 31 '10 at 20:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.