<html><head><title>[SONATA-tutorial] 3 The nearring library</title></head> <body text="#000000" bgcolor="#ffffff"> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP002.htm">Previous</a>] [<a href ="CHAP004.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <h1>3 The nearring library</h1><p> <P> <H3>Sections</H3> <oL> <li> <A HREF="CHAP003.htm#SECT001">An application of the nearring library</a> <li> <A HREF="CHAP003.htm#SECT002">Appendix K revisited</a> </ol><p> <p> There are many non-isomorphic nearrings, even of small order. All non-isomorphic nearrings of orders <var>2</var> to <var>15</var> and all non-isomorphic nearrings with identity up to order <var>31</var> with exception of those on the elementary abelian groups of orders <var>16</var> and <var>27</var> are collected in the SONATA nearring library. <p> <p> <h2><a name="SECT001">3.1 An application of the nearring library</a></h2> <p><p> The number of nearrings in the library is big. For example, try <p> <pre> gap> NumberLibraryNearRings( GTW12_3 ); 48137 </pre> <p> Try your favorite small groups with this function to get an impression of these numbers. <p> Of course, no one can know all these nearrings personally. Therefore, the main purpose of the nearring library is to filter out the nearrings of interest. <p> Consider for example the following <p> <strong>Problem:</strong> How many non-rings with identity of order <var>4</var> are there and what do they look like? If you cannot answer this question adhoc, stay tuned. <p> Let's start with the groups of order <var>4</var>. Of course you know, there are <var>2</var> groups of order <var>4</var>: <code>GTW4_1</code>, the cyclic group and <code>GTW4_2</code>, Klein's four group. <p> Let's go for <code>GTW4_1</code> first: <p> <pre> gap> NumberLibraryNearRingsWithOne( GTW4_1 ); 1 gap> Filtered( AllLibraryNearRingsWithOne( GTW4_1 ), > n -> not IsDistributiveNearRing( n ) ); [ ] </pre> <p> So, the only nearring with identity there is on <code>GTW4_1</code> is the ring. Well... you knew that before, didn't you? <p> Now for <code>GTW4_2</code>: <p> <pre> gap> NumberLibraryNearRingsWithOne( GTW4_2 ); 5 gap> Filtered( AllLibraryNearRingsWithOne( GTW4_2 ), > n -> not IsDistributiveNearRing( n ) ); [ LibraryNearRing(4/2, 12), LibraryNearRing(4/2, 22) ] </pre> <p> Here we go: <p> <pre> gap> PrintTable( LibraryNearRing( GTW4_2, 12 ) ); Let: n0 := (()) n1 := ((3,4)) n2 := ((1,2)) n3 := ((1,2)(3,4)) + | 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 n1 n1 n2 | n0 n0 n2 n2 n3 | n0 n1 n2 n3 gap> PrintTable( LibraryNearRing( GTW4_2, 22 ) ); Let: n0 := (()) n1 := ((3,4)) n2 := ((1,2)) n3 := ((1,2)(3,4)) + | 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 n2 n2 n1 | n0 n1 n2 n3 n2 | n0 n2 n2 n0 n3 | n0 n3 n2 n1 </pre> <p> <p> <h2><a name="SECT002">3.2 Appendix K revisited</a></h2> <p><p> An alternative to filtering the nearring library is to use a <code>for ... do ... od</code> construction. <p> We shall demonstrate this by recomputing the list of nearrings given in appendix K of citePilz:Nearrings, i.e. a list of all nearrings on the dihedral group of order <var>8</var> (<code>GTW8_4</code>) which have an identity, are non-zerosymmetric or are integral. <p> First, we initialize the variable <code>nr_list</code> as the empty list: <p> <pre> gap> nr_list := [ ]; [ ] </pre> <p> Now, we write ourselves a <code>for</code> loop and add those nearrings we want: <p> <pre> gap> for i in [1..NumberLibraryNearRings( GTW8_4 )] do > n := LibraryNearRing( GTW8_4, i ); > if ( not IsZeroSymmetricNearRing( n ) or > IsIntegralNearRing( n ) or > Identity( n ) <> fail > ) then > Add( nr_list, n ); > fi; > od; gap> Length( nr_list ); 141 </pre> <p> How many boolean nearrings are amongst these? We call a nearring <strong>boolean</strong> if <var>x*x=x</var> for all <var>x inN</var>. <p> <pre> gap> Filtered( nr_list, IsBooleanNearRing ); [ LibraryNearRing(8/4, 1314), LibraryNearRing(8/4, 1380), LibraryNearRing(8/4, 1446), LibraryNearRing(8/4, 1447) ] </pre> <p> Which correspond to the numbers <var>140</var>, <var>86</var>, <var>99</var>, and <var>141</var> in citePilz:Nearrings, appendix K, accordingly. <p> For those who got interested in boolean nearrings: many results about them have been collected in citePilz:Nearrings, 9.31. <p> <p> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP002.htm">Previous</a>] [<a href ="CHAP004.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <P> <address>SONATA-tutorial manual<br>November 2008 </address></body></html>