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

Line 13: | Line 13: | ||

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. Default coefficient field is <tt>Q</tt>. Default ordering is length-lexicographic ordering (<quotes>LLEX</quotes>). For more information, please check the relevant functions. | 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. Default coefficient field is <tt>Q</tt>. Default ordering is length-lexicographic ordering (<quotes>LLEX</quotes>). For more information, please check the relevant functions. | ||

<itemize> | <itemize> | ||

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

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

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

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

<example> | <example> | ||

Line 23: | Line 23: | ||

[[1, <quotes>tyy</quotes>], [-1, <quotes>tty</quotes>]], [[1, <quotes>yyx</quotes>], [-1, <quotes>tyx</quotes>]]]; | [[1, <quotes>tyy</quotes>], [-1, <quotes>tty</quotes>]], [[1, <quotes>yyx</quotes>], [-1, <quotes>tyx</quotes>]]]; | ||

NC.MB(Gb,3); | 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></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>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>, | ||

Line 39: | Line 38: | ||

<see>NC.Interreduction</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> | ||

Line 55: | Line 56: | ||

<see>NC.SetX</see> | <see>NC.SetX</see> | ||

<see>NC.Subtract</see> | <see>NC.Subtract</see> | ||

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

<see>NC.UnsetFp</see> | <see>NC.UnsetFp</see> | ||

<see>NC.UnsetOrdering</see> | <see>NC.UnsetOrdering</see> |

## Revision as of 15:42, 8 June 2012

## NC.MB

Enumerate 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