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

Line 2: | Line 2: | ||

<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. | |

</short_description> | </short_description> | ||

<syntax> | <syntax> | ||

Line 11: | Line 11: | ||

<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 coefficient field <tt>K</tt>, alphabet (or indeterminates) <tt>X</tt> and | + | 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. |

<itemize> | <itemize> | ||

− | <item>@param <em>G</em>: a LIST of non-zero homogeneous polynomials generating a two-sided ideal in <tt>K<X></tt>. Each polynomial is represented as a LIST of | + | <item>@param <em>G</em>: a LIST of non-zero homogeneous polynomials generating a two-sided ideal in <tt>K<X></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><X></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>D:</em> a positive integer which is the truncated degree of Groebner basis.</item> | <item>@param <em>D:</em> a positive integer which is the truncated degree of Groebner basis.</item> | ||

</itemize> | </itemize> | ||

− | About the optional parameters: in some situations, D-truncated Groebner basis is | + | 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. |

<itemize> | <itemize> | ||

− | <item>@param <em>LoopBound:</em> a positive integer which gives a bound for the main loop of | + | <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> | + | <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> |

− | <item>@return: a LIST of polynomials, which is a D-truncated Groebner basis | + | <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> |

</itemize> | </itemize> | ||

<example> | <example> | ||

Line 51: | Line 51: | ||

<see>NC.GB</see> | <see>NC.GB</see> | ||

<see>NC.HF</see> | <see>NC.HF</see> | ||

+ | <see>NC.Interreduction</see> | ||

<see>NC.Intersection</see> | <see>NC.Intersection</see> | ||

+ | <see>NC.IsFinite</see> | ||

<see>NC.IsGB</see> | <see>NC.IsGB</see> | ||

+ | <see>NC.IsHomog</see> | ||

<see>NC.KernelOfHomomorphism</see> | <see>NC.KernelOfHomomorphism</see> | ||

<see>NC.LC</see> | <see>NC.LC</see> | ||

<see>NC.LT</see> | <see>NC.LT</see> | ||

<see>NC.LTIdeal</see> | <see>NC.LTIdeal</see> | ||

+ | <see>NC.MB</see> | ||

<see>NC.MinimalPolynomial</see> | <see>NC.MinimalPolynomial</see> | ||

<see>NC.Multiply</see> | <see>NC.Multiply</see> |

## Revision as of 10:47, 8 June 2012

## NC.TruncatedGB

Compute a degree truncated Groebner basis of a finitely generated homogenous two-sided ideal in a free monoid ring.

### Syntax

NC.TruncatedGB(G:LIST, D:INT):LIST NC.TruncatedGB(G:LIST, D:INT, LoopBound:INT, IFlag:INT):LIST

### Description

*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 *coefficient field* `K`, *alphabet* (or set of indeterminates) `X` and *ordering* via the functions NC.SetFp, NC.SetX and NC.SetOrdering, respectively, before calling the function. The default coefficient field is `Q`. The default ordering is 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`K<X>`. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in`<X>`and C is the coefficient of W. For example, the polynomial`F=xy-y+1`is represented as F:=[[1,"xy"], [-1, "y"], [1,""]].@param

*D:*a positive integer which is the truncated degree of Groebner basis.

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 *all* of the following two optional parameters must be used at the same time.

@param

*LoopBound:*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.@param

*Flag:*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`S-polynonial`. Note that the initial idea of using Flag is to trace and debug the enumerating procedure.@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

`LoopBound`, and is a partial Groebner basis otherwise.

#### Example

NC.SetX(<quotes>xyz</quotes>); F1:=[[1,<quotes>yxy</quotes>],[-1,<quotes>zyz</quotes>]]; F2:=[[1,<quotes>xyx</quotes>],[-1,<quotes>zxy</quotes>]]; F3:=[[1,<quotes>zxz</quotes>],[-1,<quotes>yzx</quotes>]]; F4:=[[1,<quotes>xxx</quotes>],[1,<quotes>yyy</quotes>],[1,<quotes>zzz</quotes>],[1,<quotes>xyz</quotes>]]; G:=[F1,F2,F3,F4]; 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>]], [[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>], [-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>], [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>], [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>], [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>], [-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>]], [[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>]], [[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>], [-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>], [1, <quotes>yyyyxx</quotes>], [1, <quotes>zzzyxx</quotes>]]] -------------------------------

### See also