[SONATA-tutorial] 6 Ideals, factors, and direct products of nearrings

[Up] [Previous] [Next] [Index]

# 6 Ideals, factors, and direct products of nearrings

### Sections

1. Direct products
2. Ideals and factors

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.

## 6.1 Direct products

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.

## 6.2 Ideals and factors

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]