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

Line 2: | Line 2: | ||

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

<short_description> | <short_description> | ||

− | Computing | + | Computing the intersection of two finitely generated two-sided ideals over <tt>K<X></tt>. |

</short_description> | </short_description> | ||

<syntax> | <syntax> | ||

Line 9: | Line 9: | ||

<description> | <description> | ||

<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/> | ||

+ | Before calling the function, please set ring environment coefficient field <tt>K</tt> and alphabet <tt>X</tt> through the functions <ref>NC.SetFp</ref>(Prime) (or <ref>NC.UnsetFp</ref>()) and <ref>NC.SetX</ref>(X) respectively. Default coefficient field is <tt>Q</tt>. For more information, please check the relevant functions. | ||

<itemize> | <itemize> | ||

− | |||

<item>@param <em>Ideal_I:</em> a LIST of polynomials generating a two-sided ideal in <tt>K<X></tt>. Each polynomial in <tt>K<X></tt> is represented as a LIST of LISTs, which are pairs of form [c, w] where c is in <tt>K</tt> and w is a word in <tt>X*</tt>. Unit in <tt>X*</tt> is empty word represented as an empty STRING <quotes></quotes>. <tt>0</tt> polynomial is represented as an empty LIST []. For example, polynomial <tt>F:=xy-y+1</tt> in <tt>K<x,y></tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item> | <item>@param <em>Ideal_I:</em> a LIST of polynomials generating a two-sided ideal in <tt>K<X></tt>. Each polynomial in <tt>K<X></tt> is represented as a LIST of LISTs, which are pairs of form [c, w] where c is in <tt>K</tt> and w is a word in <tt>X*</tt>. Unit in <tt>X*</tt> is empty word represented as an empty STRING <quotes></quotes>. <tt>0</tt> polynomial is represented as an empty LIST []. For example, polynomial <tt>F:=xy-y+1</tt> in <tt>K<x,y></tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]].</item> | ||

<item>@param <em>Ideal_J:</em> another LIST of polynomials in <tt>K<X></tt>.</item> | <item>@param <em>Ideal_J:</em> another LIST of polynomials in <tt>K<X></tt>.</item> | ||

<item>@return: probably a Groebner basis of the intersection of <tt>Ideal_I</tt> and <tt>Ideal_J</tt>.</item> | <item>@return: probably a Groebner basis of the intersection of <tt>Ideal_I</tt> and <tt>Ideal_J</tt>.</item> | ||

</itemize> | </itemize> | ||

− | Since the algorithm used in this function is based on Groebner basis computation, we refer users to < | + | Since the algorithm used in this function is based on Groebner basis computation, we refer users to <ref>NC.GB</ref> for information on optional parameters. |

<example> | <example> | ||

NC.SetFp(); -- set default Fp=F2 | NC.SetFp(); -- set default Fp=F2 | ||

Line 59: | Line 60: | ||

<see>NC.UnsetRules</see> | <see>NC.UnsetRules</see> | ||

<see>NC.UnsetX</see> | <see>NC.UnsetX</see> | ||

− | <see> | + | <see>NC.MRAdd</see> |

− | <see> | + | <see>NC.MRBP</see> |

− | <see> | + | <see>NC.MRIntersection</see> |

− | <see> | + | <see>NC.MRKernelOfHomomorphism</see> |

− | <see> | + | <see>NC.MRMinimalPolynomials</see> |

− | <see> | + | <see>NC.MRMultiply</see> |

− | <see> | + | <see>NC.MRSubtract</see> |

<see>Introduction to CoCoAServer</see> | <see>Introduction to CoCoAServer</see> | ||

</seealso> | </seealso> | ||

Line 72: | Line 73: | ||

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

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

+ | <key>gbmr.intersection</key> | ||

<key>NC.Intersection</key> | <key>NC.Intersection</key> | ||

<key>Intersection</key> | <key>Intersection</key> | ||

<wiki-category>Package_gbmr</wiki-category> | <wiki-category>Package_gbmr</wiki-category> | ||

</command> | </command> |

## Revision as of 10:34, 22 July 2010

## NC.Intersection

Computing the intersection of two finitely generated two-sided ideals over `K<X>`.

### Syntax

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.GB for information on optional parameters.

#### 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