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

Line 2: | Line 2: | ||

<title>NC.Intersection</title> | <title>NC.Intersection</title> | ||

<short_description> | <short_description> | ||

− | ( | + | 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> | + | 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 | + | <item>@param <em>G1, G2:</em> two LISTs of non-zero polynomials which generate two two-sided ideals in <tt>K<X></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><X></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 | + | 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