[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 ∈ I, n,m ∈ N, we have (m+i)*n − m*n ∈ I and n*i ∈ I. 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 ∈ I, n,m ∈ N, we have (m+i)*n − m*n ∈ I. Right ideals are in one-to-one correspondence to the congruence relations on (N,+, { λm | m ∈ M } ), where λm (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 ∈ I, n ∈ N, we have n*i ∈ I.

## 6.1 Direct products

For all sorts of nearrings direct products A ×B 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 ×Z2. 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 ×Z2, which is not simple, but we knew that before.

Of course all this operations can be applied to all nearrings.

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