# ApCoCoA-1:NCo.BTruncatedGB

This article is about a function from ApCoCoA-1. |

## NCo.BTruncatedGB

Compute a truncated Groebner basis of a finitely generated homogeneous two-sided ideal in a free monoid ring over the binary field F_{2}={0,1}.

### Syntax

NCo.BTruncatedGB(G:LIST, DB:INT):LIST

### Description

Given a word ordering and a homogeneous two-sided ideal `I`, a set of non-zero polynomials `G` is called a Groebner basis of `I` if the leading word set `BLW{G}` generates the leading word ideal `BLW(I)`. Note that it may not exist finite Groebner basis of the ideal `I`. Moreover, let `D` be a positive integer. Then the set `{g in G | Deg(g)<=D}` is a Groebner basis of the ideal `<f in I | Deg(f)<=D>` and is called a *D-truncated* Groebner basis of `I`.

*Please note:* The function(s) explained on this page is/are using the *ApCoCoAServer*. You will have to start the ApCoCoAServer in order to use it/them.

Please set ring environment *alphabet* (or set of indeterminates) `X` and *word ordering* via the functions NCo.SetX and NCo.SetOrdering, respectively, before calling this function. The default ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.

@param

*G*: a LIST of non-zero homogeneous polynomials generating a two-sided ideal in the free monoid ring`F_{2}<X>`. Each word is represented as a STRING. For example,`xy^2x`is represented as "xyyx", and the identity is represented as the empty string "". Thus, the polynomial`f=xy-y+1`is represented as F:=["xy", "y", ""]. The zero polynomial`0`is represented as the empty LIST [].@param

*DB*: a positive INT, which gives a degree bound of S-polynomials (or obstructions) during the Buchberger enumerating procedure. The procedure will discard S-polynomials (or obstructions) whose degrees are larger than DB.@return: a LIST of polynomials, which is a truncated Groebner basis at degree DB with respect to the current word ordering if the enumerating procedure doesn't terminate due to reaching the loop bound LB, and is a partial Groebner basis otherwise.

#### Example

NCo.SetX("xyz"); F1:=["yxy","zyz"]; F2:=["xyx","zxy"]; F3:=["zxz","yzx"]; F4:=["xxx","yyy","zzz","xyz"]; G:=[F1,F2,F3,F4]; NCo.BTruncatedGB(G,6); [["yzx", "zxz"], ["yxy", "zyz"], ["xyx", "zxy"], ["xxx", "xyz", "yyy", "zzz"], ["zxzy", "zzxz"], ["xzyz", "zxyy"], ["xxyz", "xyyy", "xzxz", "xzzz", "yyyx", "zzzx"], ["zzxyy", "zzxzz"], ["yzzxz", "zxzzy"], ["yzzxy", "zzxzx"], ["yzyyy", "yzzzz", "zxzxx", "zzxzz"], ["yxzxz", "zyzzx"], ["xzzxz", "zxyyx"], ["xyyyy", "xyzzz", "zxyyz", "zzzxy"], ["xxzxz", "xyyyx", "xzxzx", "xzzzx", "yyyxx", "zzzxx"], ["xxzxy", "xyzyx", "yyyyx", "zzzyx"], ["xxyyy", "xxzzz", "xyzyz", "xzxzx", "yyyxx", "yyyyz", "zzzxx", "zzzyz"], ["zxzzyz", "zzxzxy"], ["yzzzxz", "zxzzyy"], ["yzzzxy", "zzxzxx"], ["xzzzxz", "zxyzyz"], ["xyyzyz", "xzxyyx", "xzxzxy", "xzzzxy", "yyyxxy", "zzzxxy"], ["xxzzzy", "xyyyzz", "xyzyzy", "xzxyyz", "xzxzxy", "xzxzzz", "xzzzxy", "xzzzzz", "yyyxxy", "yyyxzz", "yyyyzy", "zzzxxy", "zzzxzz", "zzzyzy"], ["xxzzxy", "xyzyxx", "yyyyxx", "zzzyxx"]] -------------------------------

### See also