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

From ApCoCoAWiki
Line 2: Line 2:
 
<title>NC.KernelOfHomomorphism</title>
 
<title>NC.KernelOfHomomorphism</title>
 
<short_description>
 
<short_description>
(Partial) (two-sided) leading-term ideal of the kernel of a <tt>K</tt>-algebra homomorphism.
+
Enumerate a (partial) Groebner basis of the kernel of a <tt>K</tt>-algebra homomorphism.
 
</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> and alphabet (or indeterminates) <tt>X</tt> through the functions <ref>NC.SetFp</ref>(Prime) and <ref>NC.SetX</ref>(X), 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.
+
Please set the <em>coefficient field</em> <tt>K</tt> via the functions <ref>NC.SetFp</ref> (or <ref>NC.UnsetFp</ref>) before calling the function. Default coefficient field is <tt>Q</tt>. For more information, please check the relevant functions.
 
<itemize>
 
<itemize>
<item>@param <em>X1:</em> a finite set of letters. It is of STRING type. Note that every letter in X1 MUST appear only once.The order of letters in X1 is very important, since X1 as well as <tt>Images</tt> are used to define a K-algebra homomorphism.</item>
+
<item>@param <em>X1:</em> a finite alphabet or finite set of indeterminates. It is of STRING type. Note that every letter in X1 MUST appear only once.The order of letters in X1 is very important, since <tt>X1</tt> together with <tt>Images</tt> determinates a K-algebra homomorphism.</item>
<item>@param <em>X2:</em> another finite set of letters. It is of STRING type. Note that X1 and X2 are disjoint.</item>
+
<item>@param <em>X2:</em> another finite alphabet or finite set of indeterminates. It is of STRING type. Note that X1 and X2 are disjoint.</item>
<item>@param <em>Images:</em> a LIST of polynomials in <tt>K&lt;X2&gt;</tt>. 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, <tt>xy^2x</tt> is represented as <quotes>xyyx</quotes>, unit is represented as an empty string <quotes></quotes>. Then, polynomial <tt>F=xy-y+1</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]]. <tt>0</tt> polynomial is represented as an empty LIST []. Note that the order of polynomials in Images is very important, since Images as well as X1 are used to defined a K-algebra homomorphism. For example, X1:=<quotes>abc</quotes>; F1 := [[1,<quotes>x</quotes>], [1,<quotes>y</quotes>]]; F2 := [[1,<quotes>xx</quotes>],[1,<quotes>xy</quotes>]]; F3 := [[1,<quotes>yy</quotes>],[1,<quotes>yx</quotes>]]; Images := [F1, F2, F3]; these together define a K-algebra homomorphism by mapping a to F1, b to F2 and c to F3.</item>
+
<item>@param <em>Images:</em> a LIST of polynomials in <tt>K&lt;X2&gt;</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>&lt;X2&gt;</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>]]. The zero polynomial <tt>0</tt> is represented as an empty LIST []. Note that the number of polynomials in <tt>Images</tt> should be equal to the number of letters in <tt>X1</tt>. Also note that the order of polynomials in Images is very important, since <tt>Images</tt> together with <tt>X1</tt> defines a K-algebra homomorphism. For example, X1:=<quotes>abc</quotes>; X2:=<quotes>xy</quotes>; F1 := [[1,<quotes>x</quotes>], [1,<quotes>y</quotes>]]; F2 := [[1,<quotes>xx</quotes>],[1,<quotes>xy</quotes>]]; F3 := [[1,<quotes>yy</quotes>],[1,<quotes>yx</quotes>]]; Images := [F1, F2, F3]; then the K-algebra homomorphism is defined by mapping a to F1, b to F2 and c to F3.</item>
 
</itemize>
 
</itemize>
Since the algorithm used in this function is based on Groebner basis computation, we refer users to <ref>NC.GB</ref> or <ref>NC.ReducedGB</ref> for information about the following optional parameters:
+
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 kernel of a <tt>K</tt>-algebra homomorphism 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 kernel of the <tt>K</tt>-algebra homomorphism if a finite Groebner basis exists, and is a partial Groebner basis otherwise.</item>
 
</itemize>
 
</itemize>
 
<example>
 
<example>
Line 42: Line 42:
 
<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:48, 7 June 2012

NC.KernelOfHomomorphism

Enumerate a (partial) Groebner basis of the kernel of a K-algebra homomorphism.

Syntax

NC.KernelOfHomomorphism(X1:STRING, X2:STRING, Images:LIST):LIST
NC.KernelOfHomomorphism(X1:STRING, X2:STRING, Images: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 the coefficient field K via the functions NC.SetFp (or NC.UnsetFp) before calling the function. Default coefficient field is Q. For more information, please check the relevant functions.

  • @param X1: a finite alphabet or finite set of indeterminates. It is of STRING type. Note that every letter in X1 MUST appear only once.The order of letters in X1 is very important, since X1 together with Images determinates a K-algebra homomorphism.

  • @param X2: another finite alphabet or finite set of indeterminates. It is of STRING type. Note that X1 and X2 are disjoint.

  • @param Images: a LIST of polynomials in K<X2>. Each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <X2> and C is the coefficient of W. For example, the polynomial F=xy-y+1 is represented as F:=[[1,"xy"], [-1, "y"], [1,""]]. The zero polynomial 0 is represented as an empty LIST []. Note that the number of polynomials in Images should be equal to the number of letters in X1. Also note that the order of polynomials in Images is very important, since Images together with X1 defines a K-algebra homomorphism. For example, X1:="abc"; X2:="xy"; F1 := [[1,"x"], [1,"y"]]; F2 := [[1,"xx"],[1,"xy"]]; F3 := [[1,"yy"],[1,"yx"]]; Images := [F1, F2, F3]; then the K-algebra homomorphism is defined by mapping a to F1, b to F2 and c to F3.

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 kernel of the K-algebra homomorphism if a finite Groebner basis exists, and is a partial Groebner basis otherwise.

Example

X1 := <quotes>abc</quotes>; 
X2 := <quotes>xy</quotes>; 
F1 := [[1,<quotes>x</quotes>], [1,<quotes>y</quotes>]]; 
F2 := [[1,<quotes>xx</quotes>],[1,<quotes>xy</quotes>]]; 
F3 := [[1,<quotes>yy</quotes>],[1,<quotes>yx</quotes>]]; 
Images :=[F1, F2, F3]; -- a |-> F1; b |-> F2; c |-> F3 
NC.KernelOfHomomorphism(X1, X2, Images);
[[[1, <quotes>ab</quotes>], [-1, <quotes>ba</quotes>], [1, <quotes>ac</quotes>], [-1, <quotes>ca</quotes>]], [[1, <quotes>aa</quotes>], [-1, <quotes>b</quotes>], [-1, <quotes>c</quotes>]]]
-------------------------------

See also

NC.Add

NC.Deg

NC.FindPolynomials

NC.GB

NC.HF

NC.Interreduction

NC.Intersection

NC.IsGB

NC.KernelOfHomomorphism

NC.LC

NC.LT

NC.LTIdeal

NC.MinimalPolynomial

NC.Multiply

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