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