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

From ApCoCoAWiki
(New page: <command> <title>NCo.KernelOfHomomorphism</title> <short_description> Enumerate a (partial) Groebner basis of the kernel of a <tt>K</tt>-algebra homomorphism. </short_description> <syntax>...)
 
m (replaced <quotes> tag by real quotes)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
<title>NCo.KernelOfHomomorphism</title>
 
<title>NCo.KernelOfHomomorphism</title>
 
<short_description>
 
<short_description>
Enumerate a (partial) Groebner basis of the kernel of a <tt>K</tt>-algebra homomorphism.
+
The kernel of an algebra homomorphism.
 
</short_description>
 
</short_description>
<syntax>
+
<syntax></syntax>
NCo.KernelOfHomomorphism(X1:STRING, X2:STRING, Images:LIST):LIST
 
NCo.KernelOfHomomorphism(X1:STRING, X2:STRING, Images:LIST, DegreeBound:INT, LoopBound:INT, Flag:INT):LIST
 
</syntax>
 
 
<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>Proposition (Kernel of an Algebra Homomorphism):</em> Let <tt>I</tt> be a two-sided ideal in the free monoid ring <tt>K&lt;x_1,...,x_n&gt;</tt>, and let <tt>J</tt> be a two-sided ideal in the free monoid ring <tt>K&lt;y_1,...,y_m&gt;</tt>. Moreover, let <tt>g_1,...,g_m</tt> be polynomials in <tt>K&lt;x_1,...,x_n&gt;</tt>, and let <tt>phi: K&lt;y_1,...,y_m&gt;/J--&gt;K&lt;x_1,...,x_n&gt;/I</tt> be a homomorphism of <tt>K</tt>-algebras defined by <tt>phi(y_i+J)=g_i+I</tt> for <tt>i=1,...,m</tt>. We form the free monoid ring <tt>K&lt;x_1,...,x_n,y_1,...,y_m&gt;</tt>, and let <tt>D</tt> be the diagonal ideal generated by the set <tt>{y_1-g_1,...,y_m-g_m}</tt>. Then we have <tt>ker(phi)=((D+J) intersets K&lt;y_1,...,y_m&gt;)+I</tt>.
<par/>
 
Please set the <em>coefficient field</em> <tt>K</tt> via the function <ref>NCo.SetFp</ref> before calling the function. The default coefficient field is <tt>Q</tt>. For more information, please check the relevant function.
 
<itemize>
 
<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 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 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 the 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>
 
Since this function is based on Groebner basis computations, we refer users to <ref>NCo.GB</ref> or <ref>NCo.ReducedGB</ref> for information about the following three optional parameters:
 
<itemize>
 
<item>@param <em>DegreeBound</em></item>
 
<item>@param <em>LoopBound</em></item>
 
<item>@param <em>Flag</em></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>
 
 
<example>
 
<example>
X1 := <quotes>abc</quotes>;  
+
-- Group ring Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; with the triangle group of order 576
X2 := <quotes>xy</quotes>;  
+
F11:=[[1,"aa"], [-1,""]];
F1 := [[1,<quotes>x</quotes>], [1,<quotes>y</quotes>]];  
+
F12:=[[1,"bbb"], [-1,""]];
F2 := [[1,<quotes>xx</quotes>],[1,<quotes>xy</quotes>]];  
+
F13:=[[1,"abababbabbabababbabb"], [-1,""]];
F3 := [[1,<quotes>yy</quotes>],[1,<quotes>yx</quotes>]];  
+
-- Group ring Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt; with the fundamental group of 3-manifold of order 72
Images :=[F1, F2, F3]; -- a |-> F1; b |-> F2; c |-> F3
+
F21:=[[1,"xxx"],[1,"yyy"]]; --x^3=y^3
NCo.KernelOfHomomorphism(X1, X2, Images);
+
F22:=[[1,"xxx"],[-1,"yXyX"]]; --x^3p=(yx^-1)^2
 +
F23:=[[1,"Xx"],[-1,""]];
 +
F24:=[[1,"xX"],[-1,"Xx"]];
 +
F25:=[[1,"Yy"],[-1,""]];
 +
F26:=[[1,"yY"],[-1,"Yy"]];
 +
-- Q-group algebra homomorphism phi: Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; --&gt;Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt;
 +
-- defined by mapping a to x2+1 and b to 0
 +
D1:=[[1,"a"],[-1,"x"]]; -- map a to x
 +
D2:=[[1,"b"]]; -- map b to 0
 +
G:=[D1,D2,F21,F22,F23,F24,F25,F26];
 +
NCo.SetX("xyXYab");
 +
NCo.SetOrdering("ELIM"); -- we want to eliminate x,y,X and Y
 +
Gb:=NCo.ReducedGB(G);
 +
KGb:=NCo.FindPolynomials("ab",Gb);
 +
Concat(KGb,[F11,F12,F13]); -- a generating system of the ker(phi)
  
[[[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>]]]
+
[[[1, "b"]], [[1, "aaaaaaaaaaaaaaaaaa"], [-1, ""]], [[1, "aa"], [-1, ""]], [[1, "bbb"], [-1, ""]],
 +
[[1, "abababbabbabababbabb"], [-1, ""]]]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
<par/>
+
<em>Corollary (Minimal Polynomial):</em> Let <tt>phi: K[y]--&gt;K&lt;X&gt;/I</tt> be a <tt>K</tt>-algebra homomorphism given by <tt>phi(y)=g+I</tt>. Then <tt>g+I</tt> is algebraic over <tt>K</tt> if and only if <tt>ker(phi)</tt> is not zero. Moreover, if <tt>g+I</tt> is algebraic over <tt>K</tt>, then the unique monic generating polynomial of the ideal <tt>ker(phi)</tt> is the minimal polynomial of <tt>g+I</tt> over <tt>K</tt>.
<em>Theorem: </em> Let <tt>I</tt> be an ideal of <tt>K&lt;X&gt;</tt>, let <tt>Y= {y1,...,ym}</tt> be another alphabet, let <tt>K&lt;Y&gt;</tt> be the free monoid ring generated by <tt>Y</tt> over <tt>K</tt>, and let <tt>J</tt> be an ideal of <tt>K&lt;Y&gt;</tt>. Moreover, let <tt>g1,...,gm</tt> be polynomals in <tt>K&lt;X&gt;</tt>, and let <tt>f: K&lt;Y&gt;/J -&gt; K&lt;X&gt;/I</tt> be a homomorphism of <tt>K</tt>-algebras defined by <tt>f(yi)=gi</tt> for <tt>i=1,...,m</tt>.  We form the free monoid ring <tt>K&lt;X,Y&gt;</tt> over <tt>K</tt>, and let <tt>D</tt> be the diagonal ideal in <tt>K&lt;X,Y&gt;</tt> generated by the set <tt>{y1-g1,...,ym−gm}</tt>. Then we have <tt>ker(f)=((D + I) intersect K&lt;Y&gt;)+J</tt>.
 
 
<example>
 
<example>
-- Group ring Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; with the triangle group of order 576
+
-- The following example shows that a is transcendental over Q in the algebra Q&lt;a,b&gt;/&lt;b^2-1,(ab)^2-1&gt;,
F11:=[[1,<quotes>aa</quotes>], [-1,<quotes></quotes>]];
+
-- hence the group &lt;a,b: b^2=(ab)^2=1&gt; is infinite.
F12:=[[1,<quotes>bbb</quotes>], [-1,<quotes></quotes>]];
+
F1:=[[1,"bb"],[-1,""]]; -- b^2-1
F13:=[[1,<quotes>abababbabbabababbabb</quotes>], [-1,<quotes></quotes>]];
+
F2:=[[1,"abab"],[-1,""]]; -- (ab)^2-1
-- Group ring Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt; with
+
-- Construct a Q-algebra homomorphism phi: Q[y]--&gt; Q&lt;a,b&gt;/&lt;b^2-1,(ab)^2-1&gt;
-- the fundamental group of 3-manifold of order 72
+
-- defined by mapping y to a
F21:=[[1,<quotes>xxx</quotes>],[1,<quotes>yyy</quotes>]]; --x^3=y^3
+
D:=[[1,"y"],[-1,"a"]]; -- y-a
F22:=[[1,<quotes>xxx</quotes>],[-1,<quotes>yXyX</quotes>]]; --x^3p=(yx^-1)^2
+
G:=[D,F1,F2];
F23:=[[1,<quotes>Xx</quotes>],[-1,<quotes></quotes>]];
+
NCo.SetX("aby");
F24:=[[1,<quotes>xX</quotes>],[-1,<quotes>Xx</quotes>]];
+
NCo.SetOrdering("ELIM"); -- we want to eliminate a and b
F25:=[[1,<quotes>Yy</quotes>],[-1,<quotes></quotes>]];
+
Gb:=NCo.GB(G);
F26:=[[1,<quotes>yY</quotes>],[-1,<quotes>Yy</quotes>]];
 
-- K-group algebra homomorphism from Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; to
 
-- Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt; defined by mapping a to x2+1 and b to 0
 
D1:=[[1,<quotes>a</quotes>],[-1,<quotes>x</quotes>]]; -- map a to x
 
D2:=[[1,<quotes>b</quotes>]]; -- map b to 0
 
G:=[D1,D2,F21,F22,F23,F24,F25,F26];
 
NCo.SetX(<quotes>xyXYab</quotes>);
 
NCo.SetOrdering(<quotes>ELIM</quotes>); -- we want to eliminate x,y,X and Y
 
Gb:=NCo.ReducedGB(G);
 
 
Gb;
 
Gb;
KGb:=NCo.FindPolynomials(<quotes>ab</quotes>,Gb);
+
NCo.FindPolynomials("y",Gb);
Concat(KGb,[F11,F12,F13]); -- the kernel of K-group algebra homomorphism
 
  
[[[1, <quotes>b</quotes>]], [[1, <quotes>aaaaaaaaaaaaaaaaaa</quotes>], [-1, <quotes></quotes>]], [[1, <quotes>Yaaa</quotes>], [-1, <quotes>aaaY</quotes>]], [[1, <quotes>YY</quotes>], [1, <quotes>aYa</quotes>]],  
+
[[[1, "a"], [-1, "y"]], [[1, "bb"], [-1, ""]], [[1, "yby"], [-1, "b"]]]
[[1, <quotes>YaY</quotes>], [-1, <quotes>aaaaaaaaaaaaaa</quotes>]], [[1, <quotes>YaaY</quotes>], [1, <quotes>aaaaaaaaaaaYaa</quotes>]], [[1, <quotes>X</quotes>], [-1, <quotes>aaaaaaaaaaaaaaaaa</quotes>]],
 
[[1, <quotes>y</quotes>], [-1, <quotes>aaaaYa</quotes>]], [[1, <quotes>x</quotes>], [-1, <quotes>a</quotes>]]]
 
 
-------------------------------
 
-------------------------------
[[[1, <quotes>b</quotes>]], [[1, <quotes>aaaaaaaaaaaaaaaaaa</quotes>], [-1, <quotes></quotes>]], [[1, <quotes>aa</quotes>], [-1, <quotes></quotes>]], [[1, <quotes>bbb</quotes>], [-1, <quotes></quotes>]],  
+
[ ]
[[1, <quotes>abababbabbabababbabb</quotes>], [-1, <quotes></quotes>]]]
+
-------------------------------
 +
-- The following example computes the order of bab in the group &lt;a,b: a^3=b^2=(ab)^2=1&gt;.
 +
G1:=[[1,"aaa"],[-1,""]]; -- a^3-1
 +
G2:=[[1,"bb"],[-1,""]]; -- b^2-1
 +
G3:=[[1,"abab"],[-1,""]]; -- (ab)^2-1
 +
-- Construct a Q-algebra homomorphism phi: Q[y]--&gt; Q&lt;a,b&gt;/&lt;a^3-1,b^2-1,(ab)^2-1&gt;
 +
-- defined by mapping y to bab
 +
D:=[[1,"y"],[-1,"bab"]]; -- y-bab
 +
G:=[D,G1,G2,G3];
 +
NCo.SetX("aby");
 +
NCo.SetOrdering("ELIM"); -- we want to eliminate a and b
 +
Gb:=NCo.GB(G);
 +
NCo.FindPolynomials("y",Gb);
 +
 
 +
[[[1, "yyy"], [-1, ""]]] -- thus the order of bab is 3
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
 +
<par/>
 
</description>
 
</description>
 
<seealso>
 
<seealso>
<see>NCo.Add</see>
+
<see>ApCoCoA-1:NCo.FindPolynomials|NCo.FindPolynomials</see>
<see>NCo.Deg</see>
+
<see>ApCoCoA-1:NCo.GB|NCo.GB</see>
<see>NCo.FindPolynomials</see>
+
<see>ApCoCoA-1:NCo.SetOrdering|NCo.SetOrdering</see>
<see>NCo.GB</see>
+
<see>ApCoCoA-1:NCo.SetX|NCo.SetX</see>
<see>NCo.HF</see>
+
<see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
<see>NCo.Interreduction</see>
 
<see>NCo.Intersection</see>
 
<see>NCo.IsFinite</see>
 
<see>NCo.IsGB</see>
 
<see>NCo.IsHomog</see>
 
<see>NCo.KernelOfHomomorphism</see>
 
<see>NCo.LC</see>
 
<see>NCo.LT</see>
 
<see>NCo.LTIdeal</see>
 
<see>NCo.MB</see>
 
<see>NCo.MinimalPolynomial</see>
 
<see>NCo.Multiply</see>
 
<see>NCo.NR</see>
 
<see>NCo.ReducedGB</see>
 
<see>NCo.SetFp</see>
 
<see>NCo.SetOrdering</see>
 
<see>NCo.SetRelations</see>
 
<see>NCo.SetRules</see>
 
<see>NCo.SetX</see>
 
<see>NCo.Subtract</see>
 
<see>NCo.TruncatedGB</see>
 
<see>NCo.UnsetFp</see>
 
<see>NCo.UnsetOrdering</see>
 
<see>NCo.UnsetRelations</see>
 
<see>NCo.UnsetRules</see>
 
<see>NCo.UnsetX</see>
 
<see>Introduction to CoCoAServer</see>
 
 
</seealso>
 
</seealso>
 
<types>
 
<types>
Line 114: Line 88:
 
<key>NCo.KernelOfHomomorphism</key>
 
<key>NCo.KernelOfHomomorphism</key>
 
<key>KernelOfHomomorphism</key>
 
<key>KernelOfHomomorphism</key>
<wiki-category>Package_gbmr</wiki-category>
+
<wiki-category>ApCoCoA-1:Package_gbmr</wiki-category>
 
</command>
 
</command>

Latest revision as of 13:40, 29 October 2020

This article is about a function from ApCoCoA-1.

NCo.KernelOfHomomorphism

The kernel of an algebra homomorphism.

Syntax

Description

Proposition (Kernel of an Algebra Homomorphism): Let I be a two-sided ideal in the free monoid ring K<x_1,...,x_n>, and let J be a two-sided ideal in the free monoid ring K<y_1,...,y_m>. Moreover, let g_1,...,g_m be polynomials in K<x_1,...,x_n>, and let phi: K<y_1,...,y_m>/J-->K<x_1,...,x_n>/I be a homomorphism of K-algebras defined by phi(y_i+J)=g_i+I for i=1,...,m. We form the free monoid ring K<x_1,...,x_n,y_1,...,y_m>, and let D be the diagonal ideal generated by the set {y_1-g_1,...,y_m-g_m}. Then we have ker(phi)=((D+J) intersets K<y_1,...,y_m>)+I.

Example

-- Group ring Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; with the triangle group of order 576
F11:=[[1,"aa"], [-1,""]];
F12:=[[1,"bbb"], [-1,""]];
F13:=[[1,"abababbabbabababbabb"], [-1,""]];
-- Group ring Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt; with the fundamental group of 3-manifold of order 72
F21:=[[1,"xxx"],[1,"yyy"]]; --x^3=y^3
F22:=[[1,"xxx"],[-1,"yXyX"]]; --x^3p=(yx^-1)^2
F23:=[[1,"Xx"],[-1,""]];
F24:=[[1,"xX"],[-1,"Xx"]];
F25:=[[1,"Yy"],[-1,""]];
F26:=[[1,"yY"],[-1,"Yy"]];
-- Q-group algebra homomorphism phi: Q&lt;a,b&gt;/&lt;F11,F12,F13&gt; --&gt;Q&lt;x,y,X,Y&gt;/&lt;F21,F22,F23,F24,F25,F26&gt; 
-- defined by mapping a to x2+1 and b to 0
D1:=[[1,"a"],[-1,"x"]]; -- map a to x
D2:=[[1,"b"]]; -- map b to 0
G:=[D1,D2,F21,F22,F23,F24,F25,F26];
NCo.SetX("xyXYab");
NCo.SetOrdering("ELIM"); -- we want to eliminate x,y,X and Y
Gb:=NCo.ReducedGB(G);
KGb:=NCo.FindPolynomials("ab",Gb);
Concat(KGb,[F11,F12,F13]); -- a generating system of the ker(phi)

[[[1, "b"]], [[1, "aaaaaaaaaaaaaaaaaa"], [-1, ""]], [[1, "aa"], [-1, ""]], [[1, "bbb"], [-1, ""]], 
[[1, "abababbabbabababbabb"], [-1, ""]]]
-------------------------------

Corollary (Minimal Polynomial): Let phi: K[y]-->K<X>/I be a K-algebra homomorphism given by phi(y)=g+I. Then g+I is algebraic over K if and only if ker(phi) is not zero. Moreover, if g+I is algebraic over K, then the unique monic generating polynomial of the ideal ker(phi) is the minimal polynomial of g+I over K.

Example

-- The following example shows that a is transcendental over Q in the algebra Q&lt;a,b&gt;/&lt;b^2-1,(ab)^2-1&gt;,
-- hence the group &lt;a,b: b^2=(ab)^2=1&gt; is infinite.
F1:=[[1,"bb"],[-1,""]]; -- b^2-1
F2:=[[1,"abab"],[-1,""]]; -- (ab)^2-1
-- Construct a Q-algebra homomorphism phi: Q[y]--&gt; Q&lt;a,b&gt;/&lt;b^2-1,(ab)^2-1&gt;
-- defined by mapping y to a
D:=[[1,"y"],[-1,"a"]]; -- y-a
G:=[D,F1,F2];
NCo.SetX("aby");
NCo.SetOrdering("ELIM"); -- we want to eliminate a and b
Gb:=NCo.GB(G);
Gb;
NCo.FindPolynomials("y",Gb);

[[[1, "a"], [-1, "y"]], [[1, "bb"], [-1, ""]], [[1, "yby"], [-1, "b"]]]
-------------------------------
[ ]
-------------------------------
-- The following example computes the order of bab in the group &lt;a,b: a^3=b^2=(ab)^2=1&gt;.
G1:=[[1,"aaa"],[-1,""]]; -- a^3-1
G2:=[[1,"bb"],[-1,""]]; -- b^2-1
G3:=[[1,"abab"],[-1,""]]; -- (ab)^2-1
-- Construct a Q-algebra homomorphism phi: Q[y]--&gt; Q&lt;a,b&gt;/&lt;a^3-1,b^2-1,(ab)^2-1&gt;
-- defined by mapping y to bab
D:=[[1,"y"],[-1,"bab"]]; -- y-bab
G:=[D,G1,G2,G3];
NCo.SetX("aby");
NCo.SetOrdering("ELIM"); -- we want to eliminate a and b
Gb:=NCo.GB(G);
NCo.FindPolynomials("y",Gb);

[[[1, "yyy"], [-1, ""]]] -- thus the order of bab is 3
-------------------------------


See also

NCo.FindPolynomials

NCo.GB

NCo.SetOrdering

NCo.SetX

Introduction to CoCoAServer