up previous next

vector space basis for zero-dimensional quotient rings

QuotientBasis(I: IDEAL): LIST

This function determines a vector space basis (of power products) for the quotient space associated to a zero-dimensional ideal. That is, if R is a polynomial ring with field of coefficients k, and I is a zero-dimensional ideal in R then QuotientBasis(I) is a set of power products forming a k-vector space basis of R/I.

The actual set of power products chosen depends on the term ordering in the ring R: the power products chosen are those not divisible by the leading term of any member of the reduced Groebner basis of I (and consequently they form a factor-closed set).

/**/  Points := [[Rand(-9,9) | N In 1..3] | S In 1..25];
/**/  Use P ::= QQ[x,y,z];
/**/  I := IdealOfPoints(P, mat(QQ, Points));
/**/  QuotientBasis(I);
[1, z, z^2, z^3, z^4, y, y*z, y*z^2, y*z^3, y^2, y^2*z, y^2*z^2, y^3, x,
x*z, x*z^2, x*z^3, x*y, x*y*z, x*y*z^2, x*y^2, x^2, x^2*z, x^2*y, x^3]

/**/  Use P ::= QQ[x,y,z], Lex;
/**/  I := IdealOfPoints(P, mat(QQ,Points));
/**/  QuotientBasis(I);     -- power products underneath the Lex reduced GBasis
[1, z, z^2, z^3, z^4, z^5, z^6, z^7, z^8, z^9, z^10, z^11, z^12, y, y*z,
y*z^2, y*z^3, y*z^4, y*z^5, y*z^6, y^2, y^2*z, y^2*z^2, y^2*z^3, y^3]

See Also