#### 7.10.1.4 lpMonomialBasis

Procedure from library `fpadim.lib` (see fpadim_lib).

Usage:
  lpMonomialBasis(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

Note:
  will be replaced with reduce(maxideal(d), J); soon

Example:

    LIB "fpadim.lib";
    ring r = 0,(x,y),dp;
    def R = freeAlgebra(r, 7); setring R;
    ideal J = x*y*x - y*x*y;
    option(redSB); option(redTail);
    J = letplaceGBasis(J);
    J;
    ==> J[1]=x*y*x-y*x*y
    ==> J[2]=y*x*y*y*x-x*y*y*x*y
    ==> J[3]=y*x*y*y*y*x-x*x*y*y*x*y
    ==> J[4]=y*x*y*y*y*y*x-x*x*x*y*y*x*y
    //monomials of degree 2 only in K<x,y>:
    lpMonomialBasis(2,1,ideal(0));
    ==> _[1]=x*x
    ==> _[2]=y*x
    ==> _[3]=x*y
    ==> _[4]=y*y
    //monomials of degree <=2 in K<x,y>
    lpMonomialBasis(2,0,ideal(0));
    ==> _[1]=1
    ==> _[2]=x
    ==> _[3]=y
    ==> _[4]=x*x
    ==> _[5]=y*x
    ==> _[6]=x*y
    ==> _[7]=y*y
    //monomials of degree 3 only in K<x,y>/J
    lpMonomialBasis(3,1,J);
    ==> _[1]=x*x*x
    ==> _[2]=y*x*x
    ==> _[3]=y*y*x
    ==> _[4]=x*x*y
    ==> _[5]=y*x*y
    ==> _[6]=x*y*y
    ==> _[7]=y*y*y
    //monomials of degree <=3 in K<x,y>/J
    lpMonomialBasis(3,0,J);
    ==> _[1]=1
    ==> _[2]=x
    ==> _[3]=y
    ==> _[4]=x*x
    ==> _[5]=y*x
    ==> _[6]=x*y
    ==> _[7]=y*y
    ==> _[8]=x*x*x
    ==> _[9]=y*x*x
    ==> _[10]=y*y*x
    ==> _[11]=x*x*y
    ==> _[12]=y*x*y
    ==> _[13]=x*y*y
    ==> _[14]=y*y*y

User manual for Singular version 4.4.1, 2025, generated by texi2html.