|
7.7.7.0. monomialBasis
Procedure from library fpadim.lib (see fpadim_lib).
- Usage:
- monomialBasis(d, donly, J); d, donly integers, J an ideal
RETURN: ideal
PURPOSE: computes a list of free monomials in a Letterplace
basering R of degree at most d and not contained in <LM(J)>
if donly <> 0, only monomials of degree d are returned
ASSUME: - basering is a Letterplace ring.
- d <= attrib(basering,uptodeg) holds.
- J is a Groebner basis
Example:
| LIB "fpadim.lib";
ring r = 0,(x,y),dp;
def R = makeLetterplaceRing(7); setring R;
ideal J = x(1)*y(2)*x(3) - y(1)*x(2)*y(3);
option(redSB); option(redTail);
J = letplaceGBasis(J);
J;
==> J[1]=x(1)*y(2)*x(3)-y(1)*x(2)*y(3)
==> J[2]=x(1)*y(2)*y(3)*x(4)*y(5)-y(1)*x(2)*y(3)*y(4)*x(5)
==> J[3]=x(1)*y(2)*y(3)*y(4)*x(5)*y(6)-y(1)*x(2)*y(3)*y(4)*x(5)*x(6)
==> J[4]=x(1)*y(2)*y(3)*y(4)*y(5)*x(6)*y(7)-y(1)*x(2)*y(3)*y(4)*x(5)*x(6)*x(7\
)
monomialBasis(2,1,std(0));
==> _[1]=x(1)*y(2)
==> _[2]=x(1)*x(2)
==> _[3]=y(1)*y(2)
==> _[4]=y(1)*x(2)
==> // ** right side is not a datum, assignment ignored
==> // ** in line >>;return();<<
==> _[1]=0
monomialBasis(2,0,std(0));
==> _[1]=y(1)
==> _[2]=x(1)
==> _[3]=x(1)*y(2)
==> _[4]=x(1)*x(2)
==> _[5]=y(1)*y(2)
==> _[6]=y(1)*x(2)
==> // ** right side is not a datum, assignment ignored
==> // ** in line >>;return();<<
==> _[1]=1
==> _[2]=0
monomialBasis(3,1,J);
==> _[1]=y(1)*y(2)*y(3)
==> _[2]=y(1)*y(2)*x(3)
==> _[3]=x(1)*y(2)*y(3)
==> _[4]=y(1)*x(2)*y(3)
==> _[5]=y(1)*x(2)*x(3)
==> _[6]=x(1)*x(2)*y(3)
==> _[7]=x(1)*x(2)*x(3)
monomialBasis(3,0,J);
==> _[1]=1
==> _[2]=y(1)
==> _[3]=y(1)
==> _[4]=x(1)
==> _[5]=x(1)
==> _[6]=y(1)*y(2)
==> _[7]=y(1)*x(2)
==> _[8]=x(1)*y(2)
==> _[9]=x(1)*x(2)
==> _[10]=y(1)*y(2)*y(3)
==> _[11]=y(1)*y(2)*x(3)
==> _[12]=y(1)*x(2)*y(3)
==> _[13]=y(1)*x(2)*x(3)
==> _[14]=x(1)*y(2)*y(3)
==> _[15]=x(1)*x(2)*y(3)
==> _[16]=x(1)*x(2)*x(3)
|
|