%
\Chapter{N-groups}
%
In SONATA every N-group is a group, the only difference is, that there
is a nearring that acts on the group. And since in SONATA all
nearrings are left distributive, they act on the elements of an
N-group from the right. *Note*, that the elements of an N-group are
added via `\*', not `+'.
The functions described in this section can be found in the source files
`ngroups.g?'.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Construction of N-groups}
There is a natural way to construct an N-group. It is to take a group,
a nearring and define an action of the nearring on the group. The
function `NGroup' allows one to do this. The special case, where
(the group reduct of) a nearring is viewed as an N-group over the
nearring itself, can be constructed easily via
`NGroupByNearRingMultiplication'.
\>NGroup( <G>, <nr>, <action> )
The function `NGroup' has three arguments. <G> must be a group, <nr> the
nearring that acts on the group and <action> a binary operation from the
direct product of <G> and <nr> into <G>. It returns the N-group.
\beginexample
gap> G := GTW4_2;
4/2
gap> n := MapNearRing( G );
TransformationNearRing(4/2)
gap> action := function ( g, f )
> return Image( f, g );
> end;
function ( g, f ) ... end
gap> gamma := NGroup( G, n, action );
< N-group of TransformationNearRing(4/2) >
gap> IsNGroup( gamma );
true
gap> NearRingActingOnNGroup( gamma );
TransformationNearRing(4/2)
gap> ActionOfNearRingOnNGroup( gamma );
function ( g, f ) ... end
gap> Print( ActionOfNearRingOnNGroup( gamma ) );
function ( g, f )
return Image( f, g );
\endexample
\>NGroupByNearRingMultiplication( <nr> )
For every (left) nearring $(N,+,.)$ the group $(N,+)$ is an N-group
over $N$ with respect to nearring multiplication from the right as the
action. The function `NGroupByNearRingMultiplication' returns this
N-group of the nearring <nr>.
\beginexample
gap> n := LibraryNearRing( GTW8_2, 3 );
LibraryNearRing(8/2, 3)
gap> NGroupByNearRingMultiplication( n ) = GTW8_2;
true
\endexample
\>NGroupByApplication( <tfmnr> )
For a nearring $T$ of transformations on a group $G$, $G$ is an
N-group of $T$ with the application of functions as the action. The
function `NGroupByApplication' returns this `N-group' of the nearring
<tfmnr>.
Another way to construct an N-Group is to take a nearring $N$, a right
ideal $R$ and let $N$ act on the factor $N/R$ in the canonical way.
This is accomplished by
\>NGroupByRightIdealFactor( <nr>, <R> )
The function `NGroupByRightIdealFactor' has two arguments, a nearring
<nr> and a right ideal <R>. It returns the N-group <nr>/<R>.
\beginexample
gap> N := LibraryNearRing( GTW4_2, 11 );
LibraryNearRing(4/2, 11)
gap> R := NearRingRightIdeals( N )[ 3 ];
< nearring right ideal >
gap> ng := NGroupByRightIdealFactor( N, R );
< N-group of LibraryNearRing(4/2, 11) >
gap> PrintTable( ng );
Let:
(0,0) := (())
(1,0) := ((3,4))
(0,1) := ((1,2))
(1,1) := ((1,2)(3,4))
--------------------------------------------------------------------
g0 := <identity> of ...
g1 := f1
N = LibraryNearRing(4/2, 11) acts on
G = Group( [ f1 ] )
from the right by the following action:
| g0 g1
---------------
(0,0) | g0 g0
(1,0) | g0 g0
(0,1) | g0 g1
(1,1) | g0 g1
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Operation tables of N-groups}
\>PrintTable( <G> )!{for N-groups}
The function `PrintTable' prints out the operation table of the
action of a nearring on its N-group <G>
\beginexample
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 );
LibraryNearRing(8/2, 3)
gap> gamma := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(8/2, 3) >
gap> PrintTable( gamma );
Let:
n0 := (())
n1 := ((3,4,5,6))
n2 := ((3,5)(4,6))
n3 := ((3,6,5,4))
n4 := ((1,2))
n5 := ((1,2)(3,4,5,6))
n6 := ((1,2)(3,5)(4,6))
n7 := ((1,2)(3,6,5,4))
--------------------------------------------------------------------
g0 := ()
g1 := (3,4,5,6)
g2 := (3,5)(4,6)
g3 := (3,6,5,4)
g4 := (1,2)
g5 := (1,2)(3,4,5,6)
g6 := (1,2)(3,5)(4,6)
g7 := (1,2)(3,6,5,4)
N = LibraryNearRing(8/2, 3) acts on
G = Group( [ (1,2), (3,4,5,6) ] )
from the right by the following action:
| g0 g1 g2 g3 g4 g5 g6 g7
------------------------------------
n0 | g0 g0 g0 g0 g0 g0 g0 g0
n1 | g0 g0 g0 g0 g0 g0 g0 g2
n2 | g0 g0 g0 g0 g0 g0 g0 g0
n3 | g0 g0 g0 g0 g0 g0 g0 g2
n4 | g0 g0 g0 g0 g0 g0 g0 g0
n5 | g0 g0 g0 g0 g0 g0 g0 g2
n6 | g0 g0 g0 g0 g0 g0 g0 g0
n7 | g0 g0 g0 g0 g0 g0 g0 g2
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Functions for N-groups}
\>IsNGroup( <G> )
For any group <G> the function `IsNGroup' tests whether there is a nearring
defined that acts on <G>.
\>NearRingActingOnNGroup( <G> )
The function `NearRingActingOnNGroup' returns the nearring that acts on the
N-group <G>.
\beginexample
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 );
LibraryNearRing(8/2, 3)
gap> gamma := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(8/2, 3) >
gap> NearRingActingOnNGroup( gamma );
LibraryNearRing(8/2, 3)
\endexample
\>ActionOfNearRingOnNGroup( <G> )
The function `ActionOfNearRingOnNGroup' returns the action of the nearring
that acts on the N-group <G> as a 2-ary \GAP-function.
\beginexample
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 );
LibraryNearRing(8/2, 3)
gap> gamma := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(8/2, 3) >
gap> ActionOfNearRingOnNGroup( gamma );
function ( g, n ) ... end
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{N-subgroups}
\>NSubgroup( <G>, <gens> )
The function `NSubgroup' returns the N-subgroup of the N-group <G>
generated by <gens>.
\>NSubgroups( <G> )
The function `NSubgroups' returns a list of all N-subgroups of the
N-group <G>.
\>IsNSubgroup( <G>, <S> )
The function `IsNSubgroup' returns `true' iff <S> is an N-subgroup of
<G>.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{N0-subgroups}
\>N0Subgroups( <G> )
The function `N0Subgroups' returns a list of all $N_0$-subgroups
of the N-group <G>.
\beginexample
gap> n := LibraryNearRing(GTW12_3,20465);
LibraryNearRing(12/3, 20465)
gap> ng := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(12/3, 20465) >
gap> Length( N0Subgroups( ng ) );
9
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Ideals of N-groups}
\>NIdeal( <G>, <gens> )
The function `NIdeal' returns the N-ideal of the N-group <G> generated
by <gens>.
\>NIdeals( <G> )
The function `NGroupIdeals' returns a list of all ideals of the N-group <G>.
\beginexample
gap> n:=LibraryNearRing(GTW12_3,20465);
LibraryNearRing(12/3, 20465)
gap> ng := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(12/3, 20465) >
gap> NIdeals( ng );
[ < N-group of LibraryNearRing(12/3, 20465) >,
< N-group of LibraryNearRing(12/3, 20465) >,
< N-group of LibraryNearRing(12/3, 20465) > ]
\endexample
\>IsNIdeal( <G>, <I> )
The function `IsNIdeal' returns `true' iff <I> is an N-ideal of the
N-group <G>.
\>IsSimpleNGroup( <G> )
The function `IsSimpleNGroup' returns `true' if <G> is a simple N-group
and `false' otherwise.
\>IsN0SimpleNGroup( <G> )
The function `IsN0SimpleNGroup' returns `true' if the N-group <G> is
$N_0$-simple and `false' otherwise.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Special properties of N-groups}
\>IsCompatible( <G> )
The function `IsCompatible' returns `true' if the N-group <G> is compatible
and `false' otherwise.
\>IsTameNGroup( <G> )
The function `IsTameNGroup' returns `true' if <G> is a tame N-group
and `false' otherwise.
\>Is2TameNGroup( <G> )
The function `Is2TameNGroup' returns `true' if the N-group <G> is 2-tame
and `false' otherwise.
\>Is3TameNGroup( <G> )
The function `Is3TameNGroup' returns `true' if the N-group <G> is 3-tame
and `false' otherwise.
\>IsMonogenic( <G> )
The function `IsMonogenic' returns `true' if the N-group <G> is monogenic
and `false' otherwise.
\>IsStronglyMonogenic( <G> )
The function `IsStronglyMonogenic' returns `true' if the N-group <G> is
strongly monogenic and `false' otherwise.
\>TypeOfNGroup( <G> )
The function `TypeOfNGroup' returns the type of a monogenic N-group <G>. If
<N> is not monogenic or not of type 0, 1 or 2 it returns `fail'.
\beginexample
gap> n:=LibraryNearRing(GTW12_3,20465);
LibraryNearRing(12/3, 20465)
gap> ng := NGroupByNearRingMultiplication( n );
< N-group of LibraryNearRing(12/3, 20465) >
gap> TypeOfNGroup( ng );
fail
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Noetherian quotients}
\>NoetherianQuotient( <nr>, <ngrp>, <target>, <source> )
It is assumed that <source> and <target> are subsets of the <nr>-group
<ngrp>. The function `NoetherianQuotient' computes the set of all
elements <f> of <nr> such that <source>$*$<f> is a subset of <target>.
If <target> is an <nr>-ideal of <ngrp>, the Noetherian quotient is
returned as a near ring ideal, if <target> is an <nr>-subgroup of
<ngrp>, a left ideal of <nr> is returned. Otherwise the result is a
subset of <nr>.
In the following example we let a nearring act on its group reduct and
compute the noetherian quotient $(I,I)_N$ for an ideal $I$ of $N$.
\beginexample
gap> N := LibraryNearRing( GTW12_3, 100 );
LibraryNearRing(12/3, 100)
gap> I := NearRingIdeals( N );
[ < nearring ideal >, < nearring ideal >, < nearring ideal > ]
gap> List(I,Size);
[ 1, 6, 12 ]
gap> NN := NGroupByNearRingMultiplication( N );
< N-group of LibraryNearRing(12/3, 100) >
gap> NoetherianQuotient( N, NN, GroupReduct(I[2]), GroupReduct(I[2]) );
< nearring ideal >
gap> Size(last);
12
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Nearring radicals}
\>NuRadical( <nr>, <nu> )
The function `NuRadical' has two arguments, a nearring <nr> and a number
<nu> which must be one of `0', `1/2', `1' and `2'. It returns the
$\nu$-radical for $\nu = 0, 1/2, 1, 2$ respectively.
\>NuRadicals( <nr> )
the function `NuRadicals' returns a record with the components `J_0', `J1_2',
`J1' and `J2' with the corresponding radicals.
\beginexample
gap> f := LibraryNearRing( GTW8_4, 3 );
LibraryNearRing(8/4, 3)
gap> NuRadicals( f );
rec( J2 := < nearring ideal >, J1 := < nearring ideal >,
J1_2 := < nearring right ideal >, J0 := < nearring ideal > )
gap> NuRadical( f, 1/2 );
< nearring right ideal >
gap> Size( NuRadical( f, 0 ) );
8
gap> AsList( NuRadical( f, 1 ) );
[ (()), ((2,4)), ((1,2)(3,4)), ((1,2,3,4)), ((1,3)), ((1,3)(2,4)),
((1,4,3,2)), ((1,4)(2,3)) ]
gap> NuRadical( f, 1/2 ) = NuRadical( f, 2 );
true
\endexample
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland
|
|