<html><head><title>[SONATA-tutorial] 6 Ideals, factors, and direct products of nearrings</title></head> <body text="#000000" bgcolor="#ffffff"> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP005.htm">Previous</a>] [<a href ="CHAP007.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <h1>6 Ideals, factors, and direct products of nearrings</h1><p> <P> <H3>Sections</H3> <oL> <li> <A HREF="CHAP006.htm#SECT001">Direct products</a> <li> <A HREF="CHAP006.htm#SECT002">Ideals and factors</a> </ol><p> <p> An <strong>ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that <var>I</var> is a normal subgroup of <var>(N,+)</var>, and for all <var>i inI</var>, <var>n,m inN</var>, we have <var>(m+i)*n - m*n inI</var> and <var>n*i inI</var>. Ideals are in one-to-one correspondence to the congruence relations on <var>(N,+,*)</var>. <p> A <strong>right ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that <var>I</var> is a normal subgroup of <var>(N,+)</var>, and for all <var>i inI</var>, <var>n,m inN</var>, we have <var>(m+i)*n - m*n inI</var>. Right ideals are in one-to-one correspondence to the congruence relations on <var>(N,+, { lambda<sub>m</sub> | m inM } )</var>, where <var>lambda<sub>m</sub> (n) := n*m</var>. Hence, right ideals describe the congruences of the <var>N</var>-group <var>N<sub>N</sub></var>. <p> A <strong>left ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that <var>I</var> is a normal subgroup of <var>(N,+)</var>, and for all <var>i inI</var>, <var>n inN</var>, we have <var>n*i inI</var>. <p> <p> <h2><a name="SECT001">6.1 Direct products</a></h2> <p><p> For all sorts of nearrings direct products <var>A timesB</var> can be constructed. The result is again a nearring. In the case that both <var>A</var> and <var>B</var> are <code>TransformationNearRings</code>, the result will be a <code>TransformationNearRing</code> acting on the direct product of the groups <var>A</var> and <var>B</var> act on. In any other case the result is an <code>ExplicitMultiplicationNearRing</code>, even if one of the factors is a <code>TransformationNearRing</code>. In any case, the elements of a direct product are <strong>not</strong> pairs or tuples. <pre> gap> A := LibraryNearRing( GTW8_2, 12 ); LibraryNearRing(8/2, 12) gap> B := LibraryNearRing( GTW12_4, 13 ); LibraryNearRing(12/4, 13) gap> D := DirectProductNearRing( A, B ); DirectProductNearRing( LibraryNearRing(8/2, 12), LibraryNearRing(12/4, 13) ) gap> SetName( D, "A x B" ); gap> D; A x B </pre> In this case the result is an <code>ExplicitMultiplicationNearRing</code>. It is a good idea to give a shorter name to the nearring <var>D</var>, because we will investigate one of its ideals in the next section. <p> <p> <h2><a name="SECT002">6.2 Ideals and factors</a></h2> <p><p> We go on with the last example of the previous section and try to compute a left ideal which is generated by two elements, namely the second and the twenty-fifth in the sorted list of elements. The <font face="Gill Sans,Helvetica,Arial">GAP</font> function <code>list{[ poss ]}</code> constructs a list of those elements of the list <code>list</code> the position in the list <code>list</code> of which is in the list <code>poss</code>. For short, <code>elms{[2,25]}</code> is a list which contains the second and the twenty-fifth element of the list <code>elms</code>. <pre> gap> elms := AsSortedList( D );; gap> gens := elms{[2,25]}; [ (( 8, 9,10)), ((3,5)(4,6)) ] gap> L := NearRingLeftIdealByGenerators( D, gens ); < nearring left ideal > </pre> Now we can start investigating <var>I</var>. We can compute its size and test if it is an ideal. <pre> gap> Size( L ); 24 gap> IsNearRingRightIdeal( L ); true gap> L; < nearring ideal of size 24 > </pre> So <var>L</var> is a two-sided ideal with 24 elements. Now we are getting interested in <var>L</var>. Is it a maximal ideal, what is the factor <var>D/L</var>? <pre> gap> IsMaximalNearRingIdeal( L ); false gap> F := D/L; FactorNearRing( A x B, < nearring ideal of size 24 > ) gap> PrintTable( F, "am" ); + | n0 n1 n2 n3 -------------------- n0 | n0 n1 n2 n3 n1 | n1 n0 n3 n2 n2 | n2 n3 n0 n1 n3 | n3 n2 n1 n0 * | n0 n1 n2 n3 -------------------- n0 | n0 n0 n0 n0 n1 | n0 n0 n0 n0 n2 | n0 n0 n0 n0 n3 | n0 n0 n0 n0 </pre> Here, we use <code>PrintTable</code> with a second argument, because we do not want to see all the information. Here <code>a</code> stands for addition and <code>m</code> stands for multiplication table. For more options see the reference manual. Obviously, <var>F</var> is a constant nearring on a group of order 4. The additive group of the nearring is <var><font face="helvetica,arial">Z</font><sub>2</sub> times<font face="helvetica,arial">Z</font><sub>2</sub></var>. To make this fact more obvious, we choose other names (symbols) for the elements of the nearring and print the addition table again. <pre> gap> IsElementaryAbelian( GroupReduct( F ) ); true gap> # this would also convince us gap> IsCyclic( GroupReduct( F ) ); false gap> SetSymbols( F, ["(0,0)","(0,1)","(1,0)","(1,1)"] ); gap> PrintTable( F, "m" ); * | (0,0) (0,1) (1,0) (1,1) ----------------------------------- (0,0) | (0,0) (0,0) (0,0) (0,0) (0,1) | (0,0) (0,0) (0,0) (0,0) (1,0) | (0,0) (0,0) (0,0) (0,0) (1,1) | (0,0) (0,0) (0,0) (0,0) </pre> So <var>F</var> is the zero-ring on <var><font face="helvetica,arial">Z</font><sub>2</sub> times<font face="helvetica,arial">Z</font><sub>2</sub></var>, which is not simple, but we knew that before. <p> Of course all this operations can be applied to all nearrings. <p> <p> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP005.htm">Previous</a>] [<a href ="CHAP007.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <P> <address>SONATA-tutorial manual<br>November 2008 </address></body></html>