ApCoCoA-1:NC.MB

From ApCoCoAWiki
Revision as of 17:13, 25 April 2013 by Xiu (talk | contribs)

NC.MB

Enumerate a Macaulay basis of a K-algebra.

Syntax

NC.MB(Gb:LIST):LIST
NC.MB(Gb:LIST, DegreeBound: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. Default coefficient field is Q. Default ordering is length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions.

  • @param Gb: a LIST of non-zero polynomials in K<X> which is a Groebner basis (w.r.t. a length compatible admissible ordering, say Ordering) of the two-sided ideal generated by Gb. 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,""]]. Warning: users should take responsibility to make sure that Gb is indeed a Groebner basis w.r.t. Ordering! In the case that Gb is a partical Groebner basis, the function enumerates a pseudo basis.

  • @param DegreeBound: (optional) a positive integer which is a degree bound of Hilbert funtion. Note that we set DegreeBound=32 by default. Thus to compute the whole Macaulay basis, it is necessary to set DegreeBound to a larger enough number.

  • @return: a LIST of terms, which forms the Macaulay basis of the K-algebra K<X>/(Gb) w.r.t. Ordering.

Example

NC.SetX(<quotes>xyzt</quotes>);
NC.SetOrdering(<quotes>LLEX</quotes>);
Gb:= [[[1, <quotes>yt</quotes>], [-1, <quotes>ty</quotes>]], [[1, <quotes>xt</quotes>], [-1, <quotes>tx</quotes>]], [[1, <quotes>xy</quotes>], [-1, <quotes>ty</quotes>]], [[1, <quotes>xx</quotes>], [-1, <quotes>yx</quotes>]], 
[[1, <quotes>tyy</quotes>], [-1, <quotes>tty</quotes>]], [[1, <quotes>yyx</quotes>], [-1, <quotes>tyx</quotes>]]];
NC.MB(Gb,3);
[[<quotes></quotes>], [<quotes>t</quotes>, <quotes>z</quotes>, <quotes>y</quotes>, <quotes>x</quotes>], [<quotes>tt</quotes>, <quotes>tz</quotes>, <quotes>ty</quotes>, <quotes>tx</quotes>, <quotes>zt</quotes>, <quotes>zz</quotes>, <quotes>zy</quotes>, <quotes>zx</quotes>, <quotes>yz</quotes>, <quotes>yy</quotes>, <quotes>yx</quotes>, <quotes>xz</quotes>], 
[<quotes>ttt</quotes>, <quotes>ttz</quotes>, <quotes>tty</quotes>, <quotes>ttx</quotes>, <quotes>tzt</quotes>, <quotes>tzz</quotes>, <quotes>tzy</quotes>, <quotes>tzx</quotes>, <quotes>tyz</quotes>, <quotes>tyx</quotes>, <quotes>txz</quotes>, <quotes>ztt</quotes>, <quotes>ztz</quotes>, <quotes>zty</quotes>, <quotes>ztx</quotes>,
<quotes>zzt</quotes>, <quotes>zzz</quotes>, <quotes>zzy</quotes>, <quotes>zzx</quotes>, <quotes>zyz</quotes>, <quotes>zyy</quotes>, <quotes>zyx</quotes>, <quotes>zxz</quotes>, <quotes>yzt</quotes>, <quotes>yzz</quotes>, <quotes>yzy</quotes>, <quotes>yzx</quotes>, <quotes>yyz</quotes>, <quotes>yyy</quotes>,
 <quotes>yxz</quotes>, <quotes>xzt</quotes>, <quotes>xzz</quotes>, <quotes>xzy</quotes>, <quotes>xzx</quotes>]]
-------------------------------

See also

NC.SetOrdering

Introduction to CoCoAServer