Suppose that for a given group g the multiplication table of a binary
operation * on the elements of g is known such that * is a
near-ring multiplication on g. Then the constructor function Nearring
can be used to input the near-ring specified by g and *.
An example shall illustrate a possibility how this could be accomplished: Take the group S_3, which in GAP can be defined e.g. by
gap> g := Group( (1,2), (1,2,3) ); Group( (1,2), (1,2,3) )
This group has the following list of elements:
gap> Elements( g ); [ (), (2,3), (1,2), (1,2,3), (1,3,2), (1,3) ]
Let 1 stand for the first element in this list, 2 for the second,
and so on up to 6 which stands for the sixth element in the following
multiplication table:
catcode`|=12 begintabularccccccc} \catcode`\=13
* & 1 & 2 & 3 & 4 & 5 & 6 
hline 
1 & 1 & 1 & 1 & 1 & 1 & 1 
2 & 2 & 2 & 2 & 2 & 2 & 2 
3 & 2 & 2 & 6 & 3 & 6 & 3 
4 & 1 & 1 & 5 & 4 & 5 & 4 
5 & 1 & 1 & 4 & 5 & 4 & 5 
6 & 2 & 2 & 3 & 6 & 3 & 6 
A near-ring on g with this multiplication can be input by first defining  
a multiplication function, say m in the following way:
gap> m := function( x, y ) > local elms, table; > elms := Elements( g ); > table := [ [ 1, 1, 1, 1, 1, 1 ], > [ 2, 2, 2, 2, 2, 2 ], > [ 2, 2, 6, 3, 6, 3 ], > [ 1, 1, 5, 4, 5, 4 ], > [ 1, 1, 4, 5, 4, 5 ], > [ 2, 2, 3, 6, 3, 6 ] ]; > > return elms[ table[Position( elms, x )][Position( elms, y )] ]; > end; function ( x, y ) ... end
Then the near-ring can be constructed by calling Nearring with the
parameters g and m:
  gap> n := Nearring( g, m );
  Nearring( Group( (1,2), (1,2,3) ), function ( x, y )
      local  elms, table;
      elms := Elements( g );
      table := [ [ 1, 1, 1, 1, 1, 1 ], [ 2, 2, 2, 2, 2, 2 ], 
          [ 2, 2, 6, 3, 6, 3 ], [ 1, 1, 5, 4, 5, 4 ], 
          [ 1, 1, 4, 5, 4, 5 ], [ 2, 2, 3, 6, 3, 6 ] ];
      return elms[table[Position( elms, x )][Position( elms, y )]];
  end )
Previous Up Top GAP 3.4.4