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,+, { lambda _{m} | m inM } )`, where

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 BIn this case the result is an

`ExplicitMultiplicationNearRing`

.
It is a good idea to give a shorter name to the nearring

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

gap> Size( L ); 24 gap> IsNearRingRightIdeal( L ); true gap> L; < nearring ideal of size 24 >So

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 n0Here, 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, 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

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

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

SONATA-tutorial manual

November 2012