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

Line 72: | Line 72: | ||

<type>apcocoaserver</type> | <type>apcocoaserver</type> | ||

<type>groebner</type> | <type>groebner</type> | ||

+ | <type>ideal</type> | ||

+ | <type>non_commutative</type> | ||

</types> | </types> | ||

<key>gbmr.Intersection</key> | <key>gbmr.Intersection</key> |

## Revision as of 14:53, 14 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>]]; 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