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