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

From ApCoCoAWiki
Line 55: Line 55:
 
<see>NC.NR</see>
 
<see>NC.NR</see>
 
<see>NC.ReducedGB</see>
 
<see>NC.ReducedGB</see>
<see>NC.MRBP</see>
 
 
<see>NC.SetFp</see>
 
<see>NC.SetFp</see>
 
<see>NC.SetOrdering</see>
 
<see>NC.SetOrdering</see>

Revision as of 23:24, 11 December 2010

NC.Intersection

(Partial) Groebner basis of the intersection of two finitely generated two-sided ideals over a free associative K-algebra.

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 and alphabet (or indeterminates) X through the functions NC.SetFp(Prime) and NC.SetX(X), 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 and each generates a two-sided ideal in K<X>. 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, xy^2x is represented as "xyyx", unit is represented as an empty string "". Then, polynomial F=xy-y+1 is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. 0 polynomial is represented as an empty LIST [].

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

  • @param DegreeBound

  • @param LoopBound

  • @param Flag

  • @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.

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.Deg

NC.FindPolynomials

NC.GB

NC.HF

NC.Intersection

NC.IsGB

NC.KernelOfHomomorphism

NC.LC

NC.LT

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