# ApCoCoA-1:NC.Intersection

## 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):LIST 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