[SONATA] 3 The nearring library

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

# 3 The nearring library

### Sections

1. Extracting nearrings from the library
2. Identifying nearrings
3. IsLibraryNearRing
4. Accessing the information about a nearring stored in the library

The nearring library contains all nearrings up to order 15 and all nearrings with identity up to order 31. All nearrings in the library are nearrings constructed via `ExplicitMultiplicationNearRingNC`, so all functions for these nearrings are applicable to `LibraryNearRing`s.

## 3.1 Extracting nearrings from the library

- `LibraryNearRing(` G`,` num`)`

  `LibraryNearRing` retrieves a nearring from the nearrings library files. G must be a group of order le15. num must be an integer which indicates the number of the class of nearrings on the specified group.

  (Remark: due to the large number of nearrings on D12, make sure that you have enough main memory - say at least 32 MB - available if you want to get a library nearring on D12).

  If G is given as a `TWGroup`, then a nearring is returned whose group reduct is equal to G. Otherwise the result is a nearring whose group reduct is isomorphic to G, and a warning is issued.

  The number of nearrings definable on a certain group G can be accessed via

- `NumberLibraryNearRings(` G`)`

- `AllLibraryNearRings(` G`)`

  returns a list of all nearrings (in the library) that have the group G as group reduct.

          gap> l := AllLibraryNearRings( GTW3_1 );
          [ LibraryNearRing(3/1, 1), LibraryNearRing(3/1, 2),
            LibraryNearRing(3/1, 3), LibraryNearRing(3/1, 4),
            LibraryNearRing(3/1, 5) ]
          gap> Filtered( l, IsNearField );
          [ LibraryNearRing(3/1, 3) ]
          gap> NumberLibraryNearRings( GTW14_2 );
          1821
          gap> LN14_2_1234 := LibraryNearRing( GTW14_2, 1234 );
          LibraryNearRing(14/2, 1234)

- `LibraryNearRingWithOne(` G`,` num`)`

  `LibraryNearRingWithOne` retrieves a nearring from the nearrings library files. G must be one of the predefined groups of order le31. num must be an integer which indicates the number of the class of nearrings with identity on the specified group.

  The number of nearrings with identity definable on a certain group G can be accessed via

- `NumberLibraryNearRingsWithOne(` G`)`

- `AllLibraryNearRingsWithOne(` G`)`

  returns a list of all nearrings with identity (in the library) that have the group G as group reduct.

          gap> NumberLibraryNearRingsWithOne( GTW24_6 );
          0
          gap> NumberLibraryNearRingsWithOne( GTW24_4 );
          10
          gap> LNwI24_4_8 := LibraryNearRingWithOne( GTW24_4, 8 );
          LibraryNearRingWithOne(24/4, 8)
          gap> AllLibraryNearRingsWithOne( GTW24_6 );
          [  ]

  ## 3.2 Identifying nearrings

- `IdLibraryNearRing(` nr`)`

  The function `IdLibraryNearRing` returns a pair [G, n] such that the nearring nr is isomorphic to the nth library nearring on the group G.

          gap> p := PolynomialNearRing( GTW4_2 );
          PolynomialNearRing( 4/2 )
          gap> IdLibraryNearRing( p );
          [ 8/3, 833 ]
          gap> n := LibraryNearRing( GTW3_1, 4 );
          LibraryNearRing(3/1, 4)
          gap> d := DirectProductNearRing( n, n );
          DirectProductNearRing( LibraryNearRing(3/1, 4), LibraryNearRing(3/1, 4)\
           )
          gap> IdLibraryNearRing( d );
          [ 9/2, 220 ]

- `IdLibraryNearRingWithOne(` nr`)`

  The function `IdLibraryNearRingWithOne` returns a pair [G, n] such that the nearring nr is isomorphic to the nth library nearring with identity on the group G. This function can only be applied to nearrings which have an identity.

          gap> l := LibraryNearRingWithOne( GTW12_3, 1 );
          LibraryNearRingWithOne(12/3, 1)
          gap> IdLibraryNearRing( l ); #this command requires time and memory!!!
          [ 12/3, 37984 ]
          gap> IdLibraryNearRingWithOne( l );
          [ 12/3, 1 ]

  ## 3.3 IsLibraryNearRing

- `IsLibraryNearRing(` nr`)`

  The function `IsLibraryNearRing` returns `true` if the nearring nr has been read from the nearring library and `false` otherwise.

          gap> IsLibraryNearRing( LNwI24_4_8 );
          true

  ## 3.4 Accessing the information about a nearring stored in the library

- `LibraryNearRingInfo(` group`,` list`,` string`)`

  This function provides information about the specified library nearrings in a way similar to how nearrings are presented in the appendix of [Pil??]. The parameter group specifies a predefined group; valid names are exactly those which are also valid for the function `LibraryNearrings` (cf. Section LibraryNearRing).

  The parameter list must be a non-empty list of integers defining the classes of nearrings to be printed. Naturally, these integers must all fit into the ranges described in Section LibraryNearRing for the according groups.

  The third parameter string is optional. string must be a string consisting of one or more (or all) of the following characters: `l`, `m`, `i`, `v`, `s`, `e`, `a`. Per default, (i.e. if this parameter is not specified), the output is minimal. According to each specified character, the following is added:

  `a`
    list the nearring automorphisms.

  `c`
    print the meaning of the letters used in the output.

  `e`
    list the nearring endomorphisms.

  `g`
    list the endomorphisms of the group reduct.

  `i`
    list the ideals.

  `l`
    list the left ideals.

  `m`
    print the multiplication tables.

  `r`
    list the right ideals.

  `s`
    list the subnearrings.

  `v`
    list the invariant subnearrings.

  Examples:

  `LibraryNearRingInfo( GTW3_1, [ 3 ], "lmivsea" )` will print all available information about the third class of nearrings on the group Z3.

  `LibraryNearRingInfo( GTW4_1, [ 1..12 ] )` will provide a minimal output for all classes of nearrings on Z4.

  `LibraryNearRingInfo( GTW6_2, [ 5, 18, 21 ], "mi" )` will print the minimal information plus the multiplication tables plus the ideals for the classes 5, 18, and 21 of nearrings on the group S3.

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