<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 2 to 15 and
all non-isomorphic nearrings with identity up
to order 31 with exception of those on
the elementary abelian groups of orders
16 and 27 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 4 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 4. Of course you know,
there are 2 groups of order 4: <code>GTW4_1</code>, the cyclic group
and <code>GTW4_2</code>, Klein's four group.
<p>
Let's go for GTW4_1 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 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 <a href="biblio.htm#Pilz:Nearrings"><[>Pilz:Nearrings</cite></a>],
i.e. a list of all nearrings on the dihedral group of order 8
(<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 <i>x</i>*<i>x</i>=<i>x</i> for all <i>x</i> ∈ <i>N</i>.
<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
140, 86, 99, and 141 in
<a href="biblio.htm#Pilz:Nearrings"><[>Pilz:Nearrings</cite></a>], appendix K, accordingly.
<p>
For those who got interested in boolean nearrings:
many results about them have been collected in
<a href="biblio.htm#Pilz:Nearrings"><[>Pilz:Nearrings</cite></a>], 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>September 2025
</address></body></html>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.