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>
(Partial) Groebner basis of the intersection of two finitely generated two-sided ideals over a free associative <tt>K</tt>-algebra.
+
Enumerate a (partial) Groebner basis of the intersection of two finitely generated two-sided ideals over 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> and alphabet (or indeterminates) <tt>X</tt> through the functions <ref>NC.SetFp</ref>(Prime) and <ref>NC.SetX</ref>(X), 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>G1, G2:</em> two LISTs of non-zero polynomials and each generates a two-sided ideal in <tt>K&lt;X&gt;</tt>. Each polynomial is represented as a LIST of LISTs, which are pairs of form [C, W] where C is a coefficient and W is a word (or term). Each term is represented as a STRING. For example, <tt>xy^2x</tt> is represented as <quotes>xyyx</quotes>, unit is represented as an empty string <quotes></quotes>. Then, polynomial <tt>F=xy-y+1</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]]. <tt>0</tt> polynomial is represented as an empty LIST [].</item>
+
<item>@param <em>G1, G2:</em> two LISTs of non-zero polynomials which generate two two-sided ideals in <tt>K&lt;X&gt;</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>&lt;X&gt;</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>
 
</itemize>
 
</itemize>
Since the algorithm used in this function is based on Groebner basis computation, we refer users to <ref>NC.GB</ref> or <ref>NC.ReducedGB</ref> for information about the following optional parameters:
+
Since this function is based on Groebner basis computations, we refer users to <ref>NC.GB</ref> or <ref>NC.ReducedGB</ref> for information about the following three optional parameters:
 
<itemize>
 
<itemize>
 
<item>@param <em>DegreeBound</em></item>
 
<item>@param <em>DegreeBound</em></item>
 
<item>@param <em>LoopBound</em></item>
 
<item>@param <em>LoopBound</em></item>
 
<item>@param <em>Flag</em></item>
 
<item>@param <em>Flag</em></item>
<item>@return: a LIST of polynomials, which is a Groebner basis of the intersection of (G1) and (G2) if a finite Groebner basis exists, and is a partial Groebner basis otherwise.</item>
+
<item>@return: a LIST of polynomials, which is a Groebner basis of the intersection of the two-sided ideals <tt>(G1)</tt> and <tt>(G2)</tt> if a finite Groebner basis exists, and is a partial Groebner basis otherwise.</item>
 
</itemize>
 
</itemize>
 
<example>
 
<example>
Line 46: Line 46:
 
<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.IsGB</see>
 
<see>NC.IsGB</see>

Revision as of 14:26, 7 June 2012

NC.Intersection

Enumerate a (partial) Groebner basis of the intersection of two finitely generated two-sided ideals over a free monoid ring.

Syntax

NC.Intersection(G1:LIST, G2:LIST):LIST
NC.Intersection(G1:LIST, G2: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.

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 G1, G2: two LISTs of non-zero polynomials which generate two two-sided ideals 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,""]].

Since this function is based on Groebner basis computations, we refer users to NC.GB or NC.ReducedGB for information about the following three optional parameters:

  • @param DegreeBound

  • @param LoopBound

  • @param Flag

  • @return: a LIST of polynomials, which is a Groebner basis of the intersection of the two-sided ideals (G1) and (G2) if a finite Groebner basis exists, and is a partial Groebner basis otherwise.

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>]]; 
G1 := [F1, F2]; -- ideal generated by {xy+z, yz+x} 
G2 := [F2, F3]; -- ideal generated by {yz+x, zx+y}
NC.Intersection(G1, G2, 20, 25, 1);
[[[1, <quotes>yzyz</quotes>], [1, <quotes>zyzy</quotes>]], [[1, <quotes>zzyzyy</quotes>], [1, <quotes>yyzy</quotes>], [1, <quotes>zyzz</quotes>], [1, <quotes>yz</quotes>]], 
[[1, <quotes>yzzyzy</quotes>], [1, <quotes>yzyy</quotes>], [1, <quotes>zzyz</quotes>], [1, <quotes>zy</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: 22 -- partial Groebner basis before being interreduced
Number of S-elements: 25/86 -- 25 S-elements have been check, and 61 (=86-25) unchecked S-elements

See also

NC.Add

NC.Deg

NC.FindPolynomials

NC.GB

NC.HF

NC.Interreduction

NC.Intersection

NC.IsGB

NC.KernelOfHomomorphism

NC.LC

NC.LT

NC.LTIdeal

NC.MinimalPolynomial

NC.Multiply

NC.NR

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