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

From ApCoCoAWiki
Line 2: Line 2:
 
<title>NC.Intersection</title>
 
<title>NC.Intersection</title>
 
<short_description>
 
<short_description>
Computing the intersection of two finitely generated two-sided ideals over over a free associative <tt>K</tt>-algebra.
+
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[, DegreeBound:INT, LoopBound:INT, Flag:INT]):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 LIST of polynomials generating a two-sided ideal in <tt>K&lt;X&gt;</tt>.  Each polynomial in <tt>K&lt;X&gt;</tt> is represented as a LIST of LISTs, which are pairs of form [c, w] 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&lt;x,y&gt;</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item>
+
<item>@param <em>Ideal_I:</em> a list of polynomials generating a two-sided ideal in <tt>K&lt;X&gt;</tt>.  Each polynomial in <tt>K&lt;X&gt;</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&lt;x,y&gt;</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item>
<item>@param <em>Ideal_J:</em> another LIST of polynomials in <tt>K&lt;X&gt;</tt>.</item>
+
<item>@param <em>Ideal_J:</em> another list of polynomials in <tt>K&lt;X&gt;</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 on optional parameters.
+
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

NC.Add

NC.BP

NC.Deg

NC.FindPolynomials

NC.GB

NC.IsGB

NC.KernelOfHomomorphism

NC.LC

NC.LT

NC.LTIdeal

NC.MRAdd

NC.MRBP

NC.MRIntersection

NC.MRKernelOfHomomorphism

NC.MRMinimalPolynomials

NC.MRMultiply

NC.MRReducedBP

NC.MRSubtract

NC.MinimalPolynomial

NC.Multiply

NC.NR

NC.ReducedBP

NC.ReducedGB

NC.SetFp

NC.SetOrdering

NC.SetRelations

NC.SetRules

NC.SetX

NC.Subtract

NC.UnsetFp

NC.UnsetOrdering

NC.UnsetRelations

NC.UnsetRules

NC.UnsetX

Introduction to CoCoAServer