Difference between revisions of "ApCoCoA-1:NC.TruncatedGB"

From ApCoCoAWiki
m (replaced <quotes> tag by real quotes)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>NC.TruncatedGB</title>
 
<title>NC.TruncatedGB</title>
 
<short_description>
 
<short_description>
Compute a degree truncated Groebner basis of a finitely generated homogenous two-sided ideal in a free monoid ring.
+
Compute truncated Groebner bases of finitely generated homogeneous two-sided ideals in a non-commutative polynomial ring.
 
</short_description>
 
</short_description>
 
<syntax>
 
<syntax>
NC.TruncatedGB(G:LIST, D:INT):LIST
+
NC.TruncatedGB(G:LIST, DB:INT[, Optimize:INT, OFlag:INT]):LIST
NC.TruncatedGB(G:LIST, D:INT, LoopBound:INT, IFlag:INT):LIST
 
 
</syntax>
 
</syntax>
 
<description>
 
<description>
 +
Given a word ordering and a homogeneous two-sided ideal <tt>I</tt>, a set of non-zero polynomials <tt>Gb</tt> is called a <em>Groebner basis</em> of <tt>I</tt> if the leading word set <tt>LW{Gb}</tt> generates the leading word ideal <tt>LW(I)</tt>. Note that it may not exist finite Groebner basis of the ideal <tt>I</tt>. Moreover, let <tt>D</tt> be a positive integer. Then the set <tt>{g in Gb | Deg(g)&lt;=D}</tt> is a Groebner basis of the ideal <tt>&lt;f in I | Deg(f)&lt;=D&gt;</tt> and is called a <em>D-truncated</em> Groebner basis of <tt>I</tt>.
 +
<par/>
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<par/>
 
<par/>
Please set ring environment <em>coefficient field</em> <tt>K</tt>, <em>alphabet</em> (or set of indeterminates) <tt>X</tt> and <em>ordering</em> via the functions <ref>NC.SetFp</ref>, <ref>NC.SetX</ref> and <ref>NC.SetOrdering</ref>, respectively, before calling the function. The default coefficient field is <tt>Q</tt>. The default ordering is length-lexicographic ordering (<quotes>LLEX</quotes>). For more information, please check the relevant functions.
+
Please set non-commutative polynomial ring (via the command <ref>ApCoCoA-1:Use|Use</ref>) and word ordering (via the function <ref>ApCoCoA-1:NC.SetOrdering|NC.SetOrdering</ref>) before calling this function. The default word ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant commands and functions.
 
<itemize>
 
<itemize>
<item>@param <em>G</em>: a LIST of non-zero homogeneous polynomials generating a two-sided ideal in <tt>K&lt;X&gt;</tt>. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <tt>&lt;X&gt;</tt> and C is the coefficient of W. For example, the polynomial <tt>F=xy-y+1</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item>
+
<item>@param <em>G</em>: a LIST of non-zero non-commutative homogeneous polynomials that generate a homogeneous two-sided ideal. Each polynomial is represented as a LIST of LISTs, and each element in every inner LIST involves only one indeterminate or none (a constant). For example, the polynomial <tt>f=2x[2]y[1]x[2]^2-9y[2]x[1]^2x[2]^3+5</tt> is represented as F:=[[2x[1],y[1],x[2]^2], [-9y[2],x[1]^2,x[2]^3], [5]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
<item>@param <em>D:</em> a positive integer which is the truncated degree of Groebner basis.</item>
+
 
 +
<item>@param <em>DB:</em> 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.</item>
 +
 
 +
<item>@return: a LIST of non-zero non-commutative homogeneous polynomials, which form a DB-truncated Groebner basis of the homogeneous two-sided ideal generated by G.</item>
 
</itemize>
 
</itemize>
About the optional parameters: in some situations, D-truncated Groebner basis is too large for our applications. Thus instead of computing the whole D-truncated Groebner basis, the function has two optional parameters to interrupt the enumerating procedure. Note that at the moment <em>all</em> of the following two optional parameters must be used at the same time.
+
About 2 optional parameters:
 
<itemize>
 
<itemize>
<item>@param <em>LoopBound:</em> a positive integer which gives a bound for the main loop of the enumerating procedure. When it runs through the main loop LoopBound times, the function stops and returns a partial Groebner basis.</item>
+
<item>@param <em>Optimize:</em> an INT between 0 and 31. The value of Optimize indicates which criteria are used in the Buchberger procedure. For the time being, the function supports 5 criteria as follows.
<item>@param <em>Flag:</em> a non-negative integer which is a multi-switch for the output of ApCoCoAServer. If Flag=0, the server prints nothing on the screen. If Flag=1, the server prints basic information on the enumerating procedure, such as the number of main loop that has been proceeded, the number of elements in partial Groebner basis, the number of unselected obstructions; the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If Flag=2, beside the information as FLAG=1, the server also displays explicitly the elements in paritial Groebner basis and current selected <tt>S-polynonial</tt>. Note that the initial idea of using Flag is to trace and debug the enumerating procedure.</item>
+
  The multiply criterion: Optimize=1;
<item>@return: a LIST of polynomials, which is a D-truncated Groebner basis (w.r.t. the current ordering) if the enumerating procedure doesn't terminate due to reaching <tt>LoopBound</tt>, and is a partial Groebner basis otherwise.</item>
+
  The leading word criterion: Optimize=2;
 +
  The tail reduction criterion: Optimize=4;
 +
  The backward criterion: Optimize=8;
 +
  Discarding redundant generators: Optimize=16;
 +
  (Reference: M. Kreuzer and X. Xiu, Non-Commutative Gebauer-Moeller Criteria, 2013.)
 +
One can choose none, one, or more than one criterion in the function. For instance, Optimize=0 means no criterion is used, Optimize=1 means applying the multiply criterion, Optimize=3 (1+2) means applying the multiply and the leading word criteria, etc. By default, Optimize=31, i.e. the function applies all criteria.</item>
 +
 
 +
<item>@param <em>OFlag:</em> an INT that indicates which information will be output by the ApCoCoAServer during the Buchberger enumerating procedure. If OFlag=1, the server outputs basic information, such as the number of enumerating steps that has been proceeded, the number of elements in partial Groebner basis, the degree of current selected obstruction, the number of unselected obstructions, the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If OFlag=2, besides the information as OFlag=1, the server also displays explicitly the elements in partial Groebner basis and the current selected S-polynonial. Otherwise, the server outputs nothing during the procedure.</item>
 
</itemize>
 
</itemize>
 
<example>
 
<example>
NC.SetX(<quotes>xyz</quotes>);
+
Use QQ[x,y,z];
F1:=[[1,<quotes>yxy</quotes>],[-1,<quotes>zyz</quotes>]];
+
F1:=[[y,x,y],[-z,y,z]];
F2:=[[1,<quotes>xyx</quotes>],[-1,<quotes>zxy</quotes>]];
+
F2:=[[x,y,x],[-z,x,y]];
F3:=[[1,<quotes>zxz</quotes>],[-1,<quotes>yzx</quotes>]];
+
F3:=[[z,x,z],[-y,z,x]];
F4:=[[1,<quotes>xxx</quotes>],[1,<quotes>yyy</quotes>],[1,<quotes>zzz</quotes>],[1,<quotes>xyz</quotes>]];
+
F4:=[[x,x,x],[y,y,y],[z,z,z],[x,y,z]];
 
G:=[F1,F2,F3,F4];
 
G:=[F1,F2,F3,F4];
 
NC.TruncatedGB(G,6);
 
NC.TruncatedGB(G,6);
  
[[[1, <quotes>yzx</quotes>], [-1, <quotes>zxz</quotes>]], [[1, <quotes>yxy</quotes>], [-1, <quotes>zyz</quotes>]], [[1, <quotes>xyx</quotes>], [-1, <quotes>zxy</quotes>]], [[1, <quotes>xxx</quotes>], [1, <quotes>xyz</quotes>], [1, <quotes>yyy</quotes>], [1, <quotes>zzz</quotes>]],  
+
[[[y, z, x], [-z, x, z]], [[y, x, y], [-z, y, z]], [[x, y, x], [-z, x, y]], [[x^3], [x, y, z], [y^3], [z^3]],  
[[1, <quotes>zxzy</quotes>], [-1, <quotes>zzxz</quotes>]], [[1, <quotes>xzyz</quotes>], [-1, <quotes>zxyy</quotes>]], [[1, <quotes>xxyz</quotes>], [1, <quotes>xyyy</quotes>], [-1, <quotes>xzxz</quotes>], [1, <quotes>xzzz</quotes>], [-1, <quotes>yyyx</quotes>],  
+
[[z, x, z, y], [-z^2, x, z]], [[x, z, y, z], [-z, x, y^2]], [[x^2, y, z], [x, y^3], [-x, z, x, z], [x, z^3],  
[-1, <quotes>zzzx</quotes>]], [[1, <quotes>zzxyy</quotes>], [-1, <quotes>zzxzz</quotes>]], [[1, <quotes>yzzxz</quotes>], [-1, <quotes>zxzzy</quotes>]], [[1, <quotes>yzzxy</quotes>], [-1, <quotes>zzxzx</quotes>]], [[1, <quotes>yzyyy</quotes>],  
+
[-y^3, x], [-z^3, x]], [[z^2, x, y^2], [-z^2, x, z^2]], [[y, z^2, x, z], [-z, x, z^2, y]], [[y, z^2, x, y],  
[1, <quotes>yzzzz</quotes>], [1, <quotes>zxzxx</quotes>], [1, <quotes>zzxzz</quotes>]], [[1, <quotes>yxzxz</quotes>], [-1, <quotes>zyzzx</quotes>]], [[1, <quotes>xzzxz</quotes>], [-1, <quotes>zxyyx</quotes>]], [[1, <quotes>xyyyy</quotes>], [1, <quotes>xyzzz</quotes>],  
+
[-z^2, x, z, x]], [[y, z, y^3], [y, z^4], [z, x, z, x^2], [z^2, x, z^2]], [[y, x, z, x, z], [-z, y, z^2, x]],  
[1, <quotes>zxyyz</quotes>], [1, <quotes>zzzxy</quotes>]], [[1, <quotes>xxzxz</quotes>], [1, <quotes>xyyyx</quotes>], [-1, <quotes>xzxzx</quotes>], [1, <quotes>xzzzx</quotes>], [-1, <quotes>yyyxx</quotes>], [-1, <quotes>zzzxx</quotes>]], [[1, <quotes>xxzxy</quotes>],  
+
[[x, z^2, x, z], [-z, x, y^2, x]], [[x, y^4], [x, y, z^3], [z, x, y^2, z], [z^3, x, y]], [[x^2, z, x, z],  
[1, <quotes>xyzyx</quotes>], [1, <quotes>yyyyx</quotes>], [1, <quotes>zzzyx</quotes>]], [[1, <quotes>xxyyy</quotes>], [1, <quotes>xxzzz</quotes>], [-1, <quotes>xyzyz</quotes>], [-1, <quotes>xzxzx</quotes>], [-1, <quotes>yyyxx</quotes>], [-1, <quotes>yyyyz</quotes>],  
+
[x, y^3, x], [-x, z, x, z, x], [x, z^3, x], [-y^3, x^2], [-z^3, x^2]], [[x^2, y^3], [x^2, z^3],  
[-1, <quotes>zzzxx</quotes>], [-1, <quotes>zzzyz</quotes>]], [[1, <quotes>zxzzyz</quotes>], [-1, <quotes>zzxzxy</quotes>]], [[1, <quotes>yzzzxz</quotes>], [-1, <quotes>zxzzyy</quotes>]], [[1, <quotes>yzzzxy</quotes>], [-1, <quotes>zzxzxx</quotes>]],  
+
[-x, y, z, y, z], [-x, z, x, z, x], [-y^3, x^2], [-y^4, z], [-z^3, x^2], [-z^3, y, z]], [[x^2, z, x, y],  
[[1, <quotes>xzzzxz</quotes>], [-1, <quotes>zxyzyz</quotes>]], [[1, <quotes>xyyzyz</quotes>], [1, <quotes>xzxyyx</quotes>], [-1, <quotes>xzxzxy</quotes>], [1, <quotes>xzzzxy</quotes>], [-1, <quotes>yyyxxy</quotes>], [-1, <quotes>zzzxxy</quotes>]],  
+
[x, y, z, y, x], [y^4, x], [z^3, y, x]], [[z, x, z^2, y, z], [-z^2, x, z, x, y]], [[y, z^3, x, z], [-z, x, z^2, y^2]],  
[[1, <quotes>xxzzzy</quotes>], [1, <quotes>xyyyzz</quotes>], [-1, <quotes>xyzyzy</quotes>], [-1, <quotes>xzxyyz</quotes>], [-1, <quotes>xzxzxy</quotes>], [-1, <quotes>xzxzzz</quotes>], [-1, <quotes>xzzzxy</quotes>], [1, <quotes>xzzzzz</quotes>],  
+
[[y, z^3, x, y], [-z^2, x, z, x^2]], [[x, z^3, x, z], [-z, x, y, z, y, z]], [[x, y^2, z, y, z], [x, z, x, y^2, x],  
[-1, <quotes>yyyxxy</quotes>], [-1, <quotes>yyyxzz</quotes>], [-1, <quotes>yyyyzy</quotes>], [-1, <quotes>zzzxxy</quotes>], [-1, <quotes>zzzxzz</quotes>], [-1, <quotes>zzzyzy</quotes>]], [[1, <quotes>xxzzxy</quotes>], [1, <quotes>xyzyxx</quotes>],  
+
[-x, z, x, z, x, y], [x, z^3, x, y], [-y^3, x^2, y], [-z^3, x^2, y]], [[x^2, z^2, x, y], [x, y, z, y, x^2],  
[1, <quotes>yyyyxx</quotes>], [1, <quotes>zzzyxx</quotes>]]]
+
[y^4, x^2], [z^3, y, x^2]], [[x^2, z^3, y], [x, y^3, z^2], [-x, y, z, y, z, y], [-x, z, x, y^2, z],  
 +
[-x, z, x, z, x, y], [-x, z, x, z^3], [-x, z^3, x, y], [x, z^5], [-y^3, x^2, y], [-y^3, x, z^2], [-y^4, z, y],  
 +
[-z^3, x^2, y], [-z^3, x, z^2], [-z^3, y, z, y]]]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
 
</description>
 
</description>
 
<seealso>
 
<seealso>
<see>NC.Add</see>
+
<see>ApCoCoA-1:Use|Use</see>
<see>NC.Deg</see>
+
<see>ApCoCoA-1:NC.GB|NC.GB</see>
<see>NC.FindPolynomials</see>
+
<see>ApCoCoA-1:NC.IsGB|NC.IsGB</see>
<see>NC.GB</see>
+
<see>ApCoCoA-1:NC.LW|NC.LW</see>
<see>NC.HF</see>
+
<see>ApCoCoA-1:NC.RedGB|NC.RedGB</see>
<see>NC.Interreduction</see>
+
<see>ApCoCoA-1:NC.SetOrdering|NC.SetOrdering</see>
<see>NC.Intersection</see>
+
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
<see>NC.IsFinite</see>
 
<see>NC.IsGB</see>
 
<see>NC.IsHomog</see>
 
<see>NC.KernelOfHomomorphism</see>
 
<see>NC.LC</see>
 
<see>NC.LT</see>
 
<see>NC.LTIdeal</see>
 
<see>NC.MB</see>
 
<see>NC.MinimalPolynomial</see>
 
<see>NC.Multiply</see>
 
<see>NC.NR</see>
 
<see>NC.ReducedGB</see>
 
<see>NC.SetFp</see>
 
<see>NC.SetOrdering</see>
 
<see>NC.SetRelations</see>
 
<see>NC.SetRules</see>
 
<see>NC.SetX</see>
 
<see>NC.Subtract</see>
 
<see>NC.TruncatedGB</see>
 
<see>NC.UnsetFp</see>
 
<see>NC.UnsetOrdering</see>
 
<see>NC.UnsetRelations</see>
 
<see>NC.UnsetRules</see>
 
<see>NC.UnsetX</see>
 
<see>Introduction to CoCoAServer</see>
 
 
</seealso>
 
</seealso>
 
<types>
 
<types>
 
<type>apcocoaserver</type>
 
<type>apcocoaserver</type>
 +
<type>ideal</type>
 
<type>groebner</type>
 
<type>groebner</type>
 
<type>non_commutative</type>
 
<type>non_commutative</type>
<type>ideal</type>
 
 
</types>
 
</types>
<key>gbmr.TruncatedGB</key>
+
<key>ncpoly.TruncatedGB</key>
 
<key>NC.TruncatedGB</key>
 
<key>NC.TruncatedGB</key>
 
<key>TruncatedGB</key>
 
<key>TruncatedGB</key>
<wiki-category>Package_gbmr</wiki-category>
+
<wiki-category>ApCoCoA-1:Package_ncpoly</wiki-category>
 
</command>
 
</command>

Latest revision as of 13:36, 29 October 2020

This article is about a function from ApCoCoA-1.

NC.TruncatedGB

Compute truncated Groebner bases of finitely generated homogeneous two-sided ideals in a non-commutative polynomial ring.

Syntax

NC.TruncatedGB(G:LIST, DB:INT[, Optimize:INT, OFlag:INT]):LIST

Description

Given a word ordering and a homogeneous two-sided ideal I, a set of non-zero polynomials Gb is called a Groebner basis of I if the leading word set LW{Gb} generates the leading word ideal LW(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 Gb | 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 non-commutative polynomial ring (via the command Use) and word ordering (via the function NC.SetOrdering) before calling this function. The default word ordering is the length-lexicographic ordering ("LLEX"). For more information, please check the relevant commands and functions.

  • @param G: a LIST of non-zero non-commutative homogeneous polynomials that generate a homogeneous two-sided ideal. Each polynomial is represented as a LIST of LISTs, and each element in every inner LIST involves only one indeterminate or none (a constant). For example, the polynomial f=2x[2]y[1]x[2]^2-9y[2]x[1]^2x[2]^3+5 is represented as F:=[[2x[1],y[1],x[2]^2], [-9y[2],x[1]^2,x[2]^3], [5]]. 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 non-zero non-commutative homogeneous polynomials, which form a DB-truncated Groebner basis of the homogeneous two-sided ideal generated by G.

About 2 optional parameters:

  • @param Optimize: an INT between 0 and 31. The value of Optimize indicates which criteria are used in the Buchberger procedure. For the time being, the function supports 5 criteria as follows.

     The multiply criterion: Optimize=1;
     The leading word criterion: Optimize=2;
     The tail reduction criterion: Optimize=4;
     The backward criterion: Optimize=8;
     Discarding redundant generators: Optimize=16;
     (Reference: M. Kreuzer and X. Xiu, Non-Commutative Gebauer-Moeller Criteria, 2013.)
    

    One can choose none, one, or more than one criterion in the function. For instance, Optimize=0 means no criterion is used, Optimize=1 means applying the multiply criterion, Optimize=3 (1+2) means applying the multiply and the leading word criteria, etc. By default, Optimize=31, i.e. the function applies all criteria.

  • @param OFlag: an INT that indicates which information will be output by the ApCoCoAServer during the Buchberger enumerating procedure. If OFlag=1, the server outputs basic information, such as the number of enumerating steps that has been proceeded, the number of elements in partial Groebner basis, the degree of current selected obstruction, the number of unselected obstructions, the total number of obstructions, the number of selected obstructions, and the number of unnecessary obstructions. If OFlag=2, besides the information as OFlag=1, the server also displays explicitly the elements in partial Groebner basis and the current selected S-polynonial. Otherwise, the server outputs nothing during the procedure.

Example

Use QQ[x,y,z];
F1:=[[y,x,y],[-z,y,z]];
F2:=[[x,y,x],[-z,x,y]];
F3:=[[z,x,z],[-y,z,x]];
F4:=[[x,x,x],[y,y,y],[z,z,z],[x,y,z]];
G:=[F1,F2,F3,F4];
NC.TruncatedGB(G,6);

[[[y, z, x], [-z, x, z]], [[y, x, y], [-z, y, z]], [[x, y, x], [-z, x, y]], [[x^3], [x, y, z], [y^3], [z^3]], 
[[z, x, z, y], [-z^2, x, z]], [[x, z, y, z], [-z, x, y^2]], [[x^2, y, z], [x, y^3], [-x, z, x, z], [x, z^3], 
[-y^3, x], [-z^3, x]], [[z^2, x, y^2], [-z^2, x, z^2]], [[y, z^2, x, z], [-z, x, z^2, y]], [[y, z^2, x, y], 
[-z^2, x, z, x]], [[y, z, y^3], [y, z^4], [z, x, z, x^2], [z^2, x, z^2]], [[y, x, z, x, z], [-z, y, z^2, x]], 
[[x, z^2, x, z], [-z, x, y^2, x]], [[x, y^4], [x, y, z^3], [z, x, y^2, z], [z^3, x, y]], [[x^2, z, x, z], 
[x, y^3, x], [-x, z, x, z, x], [x, z^3, x], [-y^3, x^2], [-z^3, x^2]], [[x^2, y^3], [x^2, z^3], 
[-x, y, z, y, z], [-x, z, x, z, x], [-y^3, x^2], [-y^4, z], [-z^3, x^2], [-z^3, y, z]], [[x^2, z, x, y], 
[x, y, z, y, x], [y^4, x], [z^3, y, x]], [[z, x, z^2, y, z], [-z^2, x, z, x, y]], [[y, z^3, x, z], [-z, x, z^2, y^2]], 
[[y, z^3, x, y], [-z^2, x, z, x^2]], [[x, z^3, x, z], [-z, x, y, z, y, z]], [[x, y^2, z, y, z], [x, z, x, y^2, x], 
[-x, z, x, z, x, y], [x, z^3, x, y], [-y^3, x^2, y], [-z^3, x^2, y]], [[x^2, z^2, x, y], [x, y, z, y, x^2], 
[y^4, x^2], [z^3, y, x^2]], [[x^2, z^3, y], [x, y^3, z^2], [-x, y, z, y, z, y], [-x, z, x, y^2, z], 
[-x, z, x, z, x, y], [-x, z, x, z^3], [-x, z^3, x, y], [x, z^5], [-y^3, x^2, y], [-y^3, x, z^2], [-y^4, z, y], 
[-z^3, x^2, y], [-z^3, x, z^2], [-z^3, y, z, y]]]
-------------------------------

See also

Use

NC.GB

NC.IsGB

NC.LW

NC.RedGB

NC.SetOrdering

Introduction to CoCoAServer