Difference between revisions of "ApCoCoA-1:NC.Intersection"
Line 2: | Line 2: | ||
<title>NC.Intersection</title> | <title>NC.Intersection</title> | ||
<short_description> | <short_description> | ||
− | + | Computes the intersection of two finitely generated two-sided ideals over a free associative <tt>K</tt>-algebra. | |
</short_description> | </short_description> | ||
<syntax> | <syntax> | ||
− | NC.Intersection(Ideal_I:LIST, Ideal_J:LIST | + | NC.Intersection(Ideal_I:LIST, Ideal_J:LIST, DegreeBound:INT, LoopBound:INT, Flag:INT):LIST |
</syntax> | </syntax> | ||
<description> | <description> | ||
Line 12: | Line 12: | ||
Before calling the function, please set ring environment coefficient field <tt>K</tt> and alphabet <tt>X</tt> through the functions <ref>NC.SetFp</ref>(Prime) (or <ref>NC.UnsetFp</ref>()) and <ref>NC.SetX</ref>(X) respectively. Default coefficient field is <tt>Q</tt>. For more information, please check the relevant functions. | Before calling the function, please set ring environment coefficient field <tt>K</tt> and alphabet <tt>X</tt> through the functions <ref>NC.SetFp</ref>(Prime) (or <ref>NC.UnsetFp</ref>()) and <ref>NC.SetX</ref>(X) respectively. Default coefficient field is <tt>Q</tt>. For more information, please check the relevant functions. | ||
<itemize> | <itemize> | ||
− | <item>@param <em>Ideal_I:</em> a | + | <item>@param <em>Ideal_I:</em> a list of polynomials generating a two-sided ideal in <tt>K<X></tt>. Each polynomial in <tt>K<X></tt> is represented as a LIST of LISTs, which are pairs of form <tt>[c, w]</tt> where c is in <tt>K</tt> and w is a word in <tt>X*</tt>. Unit in <tt>X*</tt> is empty word represented as an empty string <quotes></quotes>. <tt>0</tt> polynomial is represented as an empty list. For example, polynomial <tt>F:=xy-y+1</tt> in <tt>K<x,y></tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item> |
− | <item>@param <em>Ideal_J:</em> another | + | <item>@param <em>Ideal_J:</em> another list of polynomials in <tt>K<X></tt>.</item> |
<item>@return: probably a Groebner basis of the intersection of <tt>Ideal_I</tt> and <tt>Ideal_J</tt>.</item> | <item>@return: probably a Groebner basis of the intersection of <tt>Ideal_I</tt> and <tt>Ideal_J</tt>.</item> | ||
</itemize> | </itemize> | ||
− | Since the algorithm used in this function is based on Groebner basis computation, we refer users to <ref>NC.BP</ref> or <ref>NC.GB</ref> for information | + | Since the algorithm used in this function is based on Groebner basis computation, we refer users to <ref>NC.BP</ref> or <ref>NC.GB</ref> for information about the following optional parameters: |
+ | <itemize> | ||
+ | <item>@param <em>DegreeBound</em></item> | ||
+ | <item>@param <em>LoopBound</em></item> | ||
+ | <item>@param <em>Flag</em></item> | ||
+ | </itemize> | ||
<example> | <example> | ||
NC.SetFp(); -- set default Fp=F2 | NC.SetFp(); -- set default Fp=F2 |
Revision as of 14:02, 14 October 2010
NC.Intersection
Computes the intersection of two finitely generated two-sided ideals over a free associative K-algebra.
Syntax
NC.Intersection(Ideal_I:LIST, Ideal_J:LIST, DegreeBound:INT, LoopBound:INT, Flag: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.
Before calling the function, please set ring environment coefficient field K and alphabet X through the functions NC.SetFp(Prime) (or NC.UnsetFp()) and NC.SetX(X) respectively. Default coefficient field is Q. For more information, please check the relevant functions.
@param Ideal_I: a list of polynomials generating a two-sided ideal in K<X>. Each polynomial in K<X> is represented as a LIST of LISTs, which are pairs of form [c, w] where c is in K and w is a word in X*. Unit in X* is empty word represented as an empty string "". 0 polynomial is represented as an empty list. For example, polynomial F:=xy-y+1 in K<x,y> is represented as F:=[[1,"xy"], [-1, "y"], [1,""]].
@param Ideal_J: another list of polynomials in K<X>.
@return: probably a Groebner basis of the intersection of Ideal_I and Ideal_J.
Since the algorithm used in this function is based on Groebner basis computation, we refer users to NC.BP or NC.GB for information about the following optional parameters:
@param DegreeBound
@param LoopBound
@param Flag
Example
NC.SetFp(); -- set default Fp=F2 NC.SetX(<quotes>xyz</quotes>); F1 := [[1,<quotes>xy</quotes>], [1,<quotes>z</quotes>]]; F2 := [[1,<quotes>yz</quotes>], [1, <quotes>x</quotes>]]; F3 := [[1,<quotes>zx</quotes>], [1,<quotes>y</quotes>]]; Ideal_I := [F1, F2]; -- ideal generated by {xy+z, yz+x} Ideal_J := [F2, F3]; -- ideal generated by {yz+x, zx+y} NC.Intersection(Ideal_I, Ideal_J, 20, 25, 1); [[[1, <quotes>zyzzz</quotes>], [1, <quotes>zzzyz</quotes>], [1, <quotes>yzz</quotes>], [1, <quotes>zzy</quotes>]], [[1, <quotes>yzyz</quotes>], [1, <quotes>zyzy</quotes>]], [[1, <quotes>zyzyyz</quotes>], [1, <quotes>yzyy</quotes>], [1, <quotes>zzyz</quotes>], [1, <quotes>zy</quotes>]], [[1, <quotes>yzzyzy</quotes>], [1, <quotes>yzyy</quotes>], [1, <quotes>zzyz</quotes>], [1, <quotes>zy</quotes>]], [[1, <quotes>zzzzyzyy</quotes>], [1, <quotes>zzyyzy</quotes>], [1, <quotes>zzzyzz</quotes>], [1, <quotes>zzyz</quotes>]], [[1, <quotes>zzyzyyyyz</quotes>], [1, <quotes>zyzyyyy</quotes>], [1, <quotes>yzzzyzy</quotes>], [1, <quotes>zzzyyyz</quotes>], [1, <quotes>yzyyz</quotes>], [1, <quotes>zzyyy</quotes>], [1, <quotes>zzyzz</quotes>], [1, <quotes>zyz</quotes>]], [[1, <quotes>x</quotes>], [1, <quotes>yz</quotes>]]] ------------------------------- Note the following information printed by the server shows it is a partial Groebner basis. ===== 25th Loop ===== Number of elements in (partial) Groebner basis G: 19 -- partial Groebner basis before being interreduced Number of S-elements: 25/113 -- 25 S-elements have been check, and 113 unchecked S-elements
See also