An ideal of a nearring (N,+,*) is a subset I such that I is a normal subgroup of (N,+), and for all i inI, n,m inN, we have (m+i)*n - m*n inI and n*i inI. Ideals are in one-to-one correspondence to the congruence relations on (N,+,*).
A right ideal of a nearring (N,+,*) is a subset I such that I is a normal subgroup of (N,+), and for all i inI, n,m inN, we have (m+i)*n - m*n inI. Right ideals are in one-to-one correspondence to the congruence relations on (N,+, { lambdam | m inM } ), where lambdam (n) := n*m. Hence, right ideals describe the congruences of the N-group NN.
A left ideal of a nearring (N,+,*) is a subset I such that I is a normal subgroup of (N,+), and for all i inI, n inN, we have n*i inI.
For all sorts of nearrings direct products A timesB can be constructed. The
result is again a nearring. In the case that both A and B
are TransformationNearRings, the result will be a TransformationNearRing
acting on the direct product of the groups A and B act on. In any other
case the result is an ExplicitMultiplicationNearRing, even if one of the
factors is a TransformationNearRing. In any case, the elements of a direct
product are not pairs or tuples.
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
In this case the result is an ExplicitMultiplicationNearRing.
It is a good idea to give a shorter name to the nearring D, because
we will investigate one of its ideals in the next section.
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 GAP
function list{[ poss ]} constructs a list of those elements
of the list list the position in the list list of which is
in the list poss. For short, elms{[2,25]} is a list which
contains the second and the twenty-fifth element of the list elms.
gap> elms := AsSortedList( D );;
gap> gens := elms{[2,25]};
[ (( 8, 9,10)), ((3,5)(4,6)) ]
gap> L := NearRingLeftIdealByGenerators( D, gens );
< nearring left ideal >
Now we can start investigating I. We can compute its size and test
if it is an ideal.
gap> Size( L );
24
gap> IsNearRingRightIdeal( L );
true
gap> L;
< nearring ideal of size 24 >
So L is a two-sided ideal with 24 elements. Now we are getting
interested in L. Is it a maximal ideal, what is the factor D/L?
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
Here, we use PrintTable with a second argument, because we do
not want to see all the information. Here a stands for addition and m
stands for multiplication table. For more options see the reference
manual. Obviously, F is a constant nearring on a group of order 4.
The additive group of the nearring is Z2 timesZ2. To make this
fact more obvious, we choose other names (symbols) for the elements
of the nearring and print the addition table again.
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)
So F is the zero-ring on Z2 timesZ2, which is not simple,
but we knew that before.
Of course all this operations can be applied to all nearrings.
[Up] [Previous] [Next] [Index]
SONATA-tutorial manual